亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 優化推廣 > 正文

淺析Facebook對MySQL數據庫的深度優化

2024-04-26 14:19:33
字體:
來源:轉載
供稿:網友

Facebook擁有世界上最大的MySQL數據庫集群,其中包含了成千上萬臺服務器,這些服務器分布在跨越兩個大洲的多個數據中心里。
通過幾乎將所有的任務全部自動化,這個集群只有一只非常小的MySQL DBA團隊來進行管理,集群甚至可以自己運行。而實現這種自動化的核心組件之一就是所謂的MPS系統,即“MySQL Pool Scanner”。
MPS是一個大部分用Python寫的復雜狀態機。它能夠代替DBA執行很多例行任務,并且可以讓我們以很少或是不施加人為干預就能執行批量維護工作。
單一數據庫結點
在Facebook數以千計的數據庫服務器中,每一個都能存儲一定數量的MySQL實例。一個實例是一個單獨的MySQL進程,以其自身的數據集監聽著一個單獨的端口。簡單來說,我們假設在圖表和示例中每個服務器正好有兩個實例。
整個數據集分割為無數的shard,并且每個實例都擁有一組這樣的shard,每個都在其自身的數據庫Schema里。一個Facebook用戶的信息在其創建的時候會分配給一個shard,這樣每個shard就會包含有成千上萬用戶的相關數據。
用一個單一數據庫服務器的圖表可以更容易解釋這一點:
201612095505833.jpg (569×538)

每個實例在駐留于不同服務器上的其他實例上都有幾個副本,而這些服務器通常是在不同數據中心里的。這樣做主要是為了實現兩個目的:
高可用性:如果一臺服務器宕機了,我們在其他地方還有可用數據來提供服務。
性能:不同的地理位置擁有它們自己的副本,這樣便可以使讀取服務本地化。
這里是一個簡單的replica set示意,它的每個服務器都只有一個實例,并且其他實例為空(我們稱這些是spares):
一個服務器本質上是實例容器,所以現實中的情況可以會變得更為復雜。
例如,一個單一服務器擁有一個主實例也可能擁有一個不同主實例的從實例,像下面這樣:
201612095534832.jpg (328×411)

這里MPS依賴于兩個重要的“building block”操作:
1. 創建一個副本/放置服務器
第一個building block操作是在一臺不同的主機上創建一個實例的副本。我們使用Xtrabackup的修改版本來執行大多數復制操作。如果我們在復制成功完成后移除實例,替代過程也是同樣的操作。
首先,系統為此操作分配一個空閑實例。我們選擇其中一個從實例或主實例并復制其數據到新分配的空閑實例。下表顯示了這一替代操作,它在復制完成后將實例移除:
2. 升級主實例
第二個building block操作是將一個不同的實例升級為一個replica set的主實例。
在升級過程中,我們首先選擇一個目標,停止寫入到replica set,將從實例改為從新的主實例進行復制,并恢復寫入。在下圖中演示了一個刪除操作,即在升級成功完成之后舊實例會被丟棄。為簡單起見,下面的replica set只包含三個實例:
201612095555539.jpg (557×527)

這兩個操作對于大多數使用MySQL的公司來說通常是很復雜的過程,而在Facebook,它不需要人為干預的情況下就已經可以由MPS快速而安全的全自動化運行。
主機管理和狀態
通過上文我們已經解決了基本問題,現在可以利用這些building block來探索更為抽象的概念。
MPS會連接到一個存有當前所有數據庫主機狀態和元數據的庫,這個庫還包含了當前和過期MPS的復制操作。注冊表是由數據庫服務器自身進行管理,因此數據庫集群和MPS可與不需要安裝一個復雜的應用服務器。MPS本身實際上是無狀態的,它在自己的主機池上運行并依賴于上述的庫來進行狀態管理。而狀態是分別并行處理的。
當一個服務器在數據中心被“喚醒”(連接并配置好一個新的機架),它會每隔幾分鐘運行一個本地代理。此代理會執行以下步驟:
收集關于它自身的數據。(我在哪里?我有什么硬件?我正在運行什么版本的軟件?)
根據問題對主機進行分類。(是否是在active的集群中被喚醒的?磁盤運轉是否正常?閃存卡是否正常?)
確保服務器已注冊,核心庫系統中所包含的元數據保持最新。
在首次運行中,如果沒有服務器的當前記錄就將服務器上的實例置為初始的“reimage”狀態。這便是新服務器在MPS中生命的開端。
所以每隔幾分鐘,每臺正常的服務器都會到核心庫“報道”并更新其狀態,同時同步數據使用和系統健康度之類的事項。
目前MPS管理的最小單元就是一個實例。每個實例可以處于不同的狀態。這些重要狀態如下所列:
生產狀態:實例正在服務于生產環境的流量。
空閑狀態:實例準備被復制或被分配一些其他工作。
空閑分配狀態:實例已被選中作為復制的對象,并且復制正在進行中。
空閑解除分配狀態:.臨時分流狀態。實例已經改從生產環境移除并等待分流和清理。不會有實例在此狀態停留很久。
排出狀態:實例未被使用,而是預留給測試,數據中心維護等。需要有人工干預使得主機脫離此狀態。
重塑(reimage)狀態: 此狀態下,擁有所有實例的服務器正處在重塑或修復過程中。此狀態下的服務器會被移交并由一個稱為Windex的協同系統加以管理。
由于MPS執行操作或是人工干預,一個實例可能會在不同狀態間轉換。以下狀態表顯示了幾個主要狀態以及可能讓一個實例在不同狀態間轉換的操作。
201612095618915.jpg (550×424)

上圖只展示了MPS中一個實例很小一部分的可能采取的路徑。這里所描述的狀態改變是簡單復制和維護操作的結果。還有很多其他原因可以讓實例改變狀態,并且將所有操作和檢查都進行硬編碼會讓軟件維護起來變得困難復雜。滿足“問題”是MPS中另一個基本概念。
“問題”是附屬于實例的一個屬性。如果一臺主機上所有的實例都有此問題,那么我們就會認為它是附屬于服務器本身的。另外一種考慮問題的方式類似于標簽。MPS會通過一個決策矩陣來協助有某個特定問題的實例做出決策。它基本上是一個個元組之間的映射(狀態,問題)——(行動,狀態)。
通過具體例子理解起來會更容易一些:
(生產,低空閑)——(替換,空閑解除分配):用有限空間在生產中替代一個實例,同時將其遷移至一臺不同的服務器。
(空閑解除分配,舊內核)——(遷移,重塑):如果一個實例在此狀態發生遷移,它就不會有生產數據,那么為什么不對它進行重塑呢?
(生產,主實例位于撤退位置)——(升級,生產):我們應該把主實例升級至正確的位置,并將此實例置于生產狀態。
MPS中不同的狀態和“問題”使得我們可以創建一個靈活、可維護的基礎設施,用來管理服務器的整個生命周期。
MPS所解決的常見問題
在一個大型數據中心中,每天都會有幾十個甚至上百個的服務器故障發生。下面介紹一些不需要人工干預,MPS就能自行處理的日常故障:
檢測到損壞的從實例并將其禁用,直到它們在后臺被替換。
損壞的主實例降級,這樣正常運行的副本便會取代它們并在后臺進行替換。
服務器上由于增長而耗盡空間的實例會被遷移至未充分使用的服務器。
當數據中心中存在成千上萬臺服務器的時候,升級新內核、改變分區大小或是升級控制器固件的維護工作會變得非常復雜。而對于像是遷移某些框架或是為工程團隊分配測試服務器這些本地化操作也面臨同樣的問題。以下是一個運維人員可以通過單一命令讓MPS執行的常見維護操作:
將任意數量的數據庫服務器下架并移出生產環境。大多數這樣的操作可以在24小時內完成。
在特定并發下重塑上萬臺機器(例如執行內核升級)。MPS會替代每臺機器然后發送給Windex。
為一個新項目或測試分配任意數量的空閑空間。例如想要200臺服務器來運行測試?完全沒問題。
在一個新數據中心的特定并發下,為整個Facebook數據集創建副本。
用MPS將基礎任務自動化,這樣可以對我們所管理的服務器進行更好的規劃,而且還能解放MySQL數據庫團隊來讓他們從事更具挑戰的工作。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩国产中文字幕| 亚洲精品98久久久久久中文字幕| 日韩在线高清视频| 久久亚洲精品国产亚洲老地址| 精品自在线视频| 欧美丰满少妇xxxx| 国产成人精品网站| 日本精品久久久| 精品亚洲一区二区| 日韩精品极品视频| 国产精品一区二区在线| 久久综合伊人77777| 欧美日韩国产丝袜美女| 成人乱人伦精品视频在线观看| 日韩av一卡二卡| 26uuu久久噜噜噜噜| 狠狠久久亚洲欧美专区| 亚洲影院在线看| 欧美色videos| 亚洲美女视频网| 日韩成人中文字幕| 国产一区二区三区在线视频| 欧美成人在线网站| 亚洲视频综合网| 国产精品美女免费视频| 国产精品欧美久久久| 亚洲福利小视频| 亚洲美女动态图120秒| 日韩在线高清视频| 日韩免费中文字幕| 久久福利网址导航| 91免费观看网站| 日韩中文在线中文网在线观看| 欧美黄色片在线观看| 91国产精品视频在线| 日韩亚洲欧美中文高清在线| 日韩精品在线免费观看视频| 亚洲国语精品自产拍在线观看| 成人黄色影片在线| 国产成人精品最新| 综合136福利视频在线| 久久久久久成人| 亚洲欧美日韩一区二区三区在线| 亚洲视频在线免费观看| 91免费人成网站在线观看18| 欧美日韩在线一区| 欧美中文在线字幕| 欧美电影免费看| 国产亚洲精品成人av久久ww| 97高清免费视频| 国产精品日韩欧美大师| 日韩在线免费av| 性欧美办公室18xxxxhd| 亚洲伊人成综合成人网| 最近免费中文字幕视频2019| 亚洲欧美三级在线| 亚洲一区二区三区视频| 亚洲系列中文字幕| 国产精品久久久久77777| 日韩av在线免费观看一区| 狠狠躁夜夜躁久久躁别揉| 不卡伊人av在线播放| 亚洲人成人99网站| 亚洲精品一区av在线播放| 91国在线精品国内播放| 中文字幕日本精品| 欧美国产第二页| 久久亚洲精品毛片| 久久国产视频网站| 国产精品一区二区久久| 亚洲欧美综合图区| 欧美性猛交xxxx免费看久久久| 欧美激情亚洲综合一区| 亚洲人成免费电影| 亚洲香蕉在线观看| 久久久国产一区二区| 国产a级全部精品| 亚洲天堂免费观看| 亚洲精品小视频在线观看| 色偷偷88888欧美精品久久久| 日韩精品免费视频| 亚洲国产精品资源| 日韩精品高清在线| 国产精品av网站| 夜夜嗨av一区二区三区四区| 成人激情春色网| 国产成人一区三区| 69久久夜色精品国产69乱青草| 亚洲老头老太hd| 亚洲成人免费在线视频| 热re91久久精品国99热蜜臀| 国产视频精品在线| 亚洲美女在线观看| 日本久久91av| 欧美国产高跟鞋裸体秀xxxhd| 亚洲福利视频免费观看| 欧美专区日韩视频| 国产欧美精品va在线观看| 欧美老女人在线视频| 成人免费xxxxx在线观看| 久久91超碰青草是什么| 91sa在线看| 97色在线播放视频| 亚洲精品99久久久久| 45www国产精品网站| 国产亚洲免费的视频看| 狠狠色狠色综合曰曰| 亚洲免费av电影| 欧美激情精品在线| 91香蕉嫩草影院入口| 日韩影视在线观看| 97久久精品在线| 欧美极品少妇xxxxx| 亚洲专区国产精品| 欧美肥臀大乳一区二区免费视频| 日韩中文字幕网站| 久久国产视频网站| 亚洲精品短视频| 亚洲欧美日韩国产成人| 91精品免费久久久久久久久| 亚洲人成自拍网站| 成人福利网站在线观看11| 久久人人爽国产| 大荫蒂欧美视频另类xxxx| 久久久久国产精品www| 欧美不卡视频一区发布| 欧美激情女人20p| 2021国产精品视频| 日韩中文字幕网址| 91精品在线观| 亚洲国产成人在线视频| 亚洲人成伊人成综合网久久久| 91久久国产婷婷一区二区| 欧美激情女人20p| 亚洲一区二区三区四区视频| 性欧美激情精品| 久久久久久久久久久91| 国产成人精品在线观看| 成人免费黄色网| 欧美性生交大片免网| 欧美精品激情在线观看| 91中文字幕一区| 久久久www成人免费精品| 久久九九亚洲综合| 欧美黑人性视频| 日韩在线一区二区三区免费视频| 91麻豆国产精品| 中文日韩在线观看| 国产成人aa精品一区在线播放| 国产精品吴梦梦| 狠狠做深爱婷婷久久综合一区| 欧美性生交大片免网| 久久天堂电影网| 亚洲色图色老头| 全亚洲最色的网站在线观看| 日本久久中文字幕| 日韩美女毛茸茸| 亚洲一区二区中文| 55夜色66夜色国产精品视频| 亚洲深夜福利网站| 国产精品国产自产拍高清av水多| 国产精品久久久久久亚洲调教| 国产精品久久久久aaaa九色| 久久成人精品一区二区三区|