cockroach官方文檔翻譯--3.2 產品的推薦設置

3.2 產品的推薦設置

3.2.1 硬件

最小推薦:

--對於一個複製集羣,使用至少3個節點保證可用性,如果一個節點失敗,詳見集羣策略

--每個節點需要有足夠的CPU,RAM,網絡,存儲能力處理你的工作負載,最少1個CPU和2GB RAM每個節點,對於更復雜的工作負載,更高的併發,更快的性能需要額外的資源。

最高性能:

--使用超過HDDs的SSDs

--使用更大的更多的節點,添加更多的CPU比添加更多的RAM更有用。

最高彈性:

--使用多的小節點,而不是少的大節點。當數據分散在更多的節點時,恢復失敗節點更快。

--使用區域配置增加複製因子從默認的3到5,可以在整個集羣應用或者在具體的數據庫或者表上應用

3.2.2 集羣策略

當集羣運行在至少一個節點時,每個副本在不同的節點,爲保證集羣進程,多數副本必須是可達的。因此:

--使用至少3個節點,保證即使一個節點失敗,多數副本是可達的。

--將節點運行在分散的機器上,cockroachDB的副本集跨節點,在一臺機器上運行多個節點,若機器故障,增加了數據丟失的風險,如果一個機器有多個磁盤或者SSDs,運行節點使用—store參數。

--配置奇數副本

--當副本通過數據中心,推薦明確定義節點在那個數據中心使用—locality參數,如果數據中心比其他的遠,需要明確定義推薦的多級loaclity。

--當副本跨數據中心,需要注意潛在數據中心之間交互對你的數據庫性能的影響,跨地域的集羣性能比在地理上集羣節點位置相近的性能更差。

3.2.3 時鐘同步

CockroachDB需要適當的時鐘同步保證數據的一致性,當節點檢測到時鐘與至少一半的節點不同步,即超過80%的最大容忍偏移(500ms*0.8),節點自發停止。避免違反序列化一致性而導致的讀陳舊數據和寫偏序,通過在每個節點運行NTP或者其他時鐘同步軟件防止時鐘漂移過大。

一個較爲罕見的現象是,在節點檢測前,一個節點的時鐘突然跳變,超過最大偏移。雖然可能性較少,但是確實可能發生,例如:當cockroachDB在VM中運行,VM管理程序決定將虛擬機移動到不同時間的其他硬件,這時,有一個小的窗口時間,節點時鐘不同步,節點自發停止。在這段時間客戶端有可能讀陳舊的數據或者寫陳舊的數據。

注意:推薦使用google的額外的NTP服務,

3.2.3 緩存和SQL內存大小

默認,每個節點內存大小和當前SQL內存大小爲128M,這些默認的配置是幫助開發測試的,使用者更可能是在同一臺主機上運行多個節點。當運行一個集羣產品,每個節點運行在一臺主機上,推薦增加配置:

--增加cache size提高讀性能

--增加SQL內存大小,增加允許連接客戶端的併發數(128M允許最大6200個併發連接),增加節點的容忍度對於內存進程的行處理使用order by/group by/distinct/joins/windows 函數

手動增加節點的node緩存和SQL內存大小,開始一個節點

cockroach start--cache=25% --max-sql-memory=25% <other start flags>

 

cochroachDB使用大量的打開文件描述符,需要注意:

--最小,文件描述符限制必須爲1956(每個存儲1700+256網絡),如果小於這個閾值,節點不會啓動

--推薦將文件描述符設置爲無限,否則,推薦的大小至少爲15000(10000每個存儲+5000個網絡),保證性能和集羣增長

--當文件描述符限制不夠非配給推薦數量,cockroachDB分配10000每個存儲,剩餘的給網絡。如果網絡小於256,cockroachDB分配256個給網絡,其他的切分給存儲。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章