ETCD使用中需要注意的問題--自動壓縮--最大位元組數--儲存資料大小
阿新 • • 發佈:2020-09-08
ETCD使用中需要注意的問題
我們在實際生產中使用ETCD儲存元資料, 起初叢集規模不大的時候元資料資訊不多沒有發現什麼問題。 隨著叢集規模越來越大問題逐漸暴露了
有些實際的配置還是需要在初始化的時候就研究確定
1.--auto-compaction-retention
由於ETCD資料儲存多版本資料,隨著寫入的主鍵增加歷史版本需要定時清理, 預設的歷史資料是不會清理的,資料達到2G就不能寫入,必須要清理壓縮歷史資料才能繼續寫入;
所以根據業務需求,在上生產環境之前就提前確定,歷史資料多長時間壓縮一次; 我們的生產環境現在升級後是預設一小時壓縮一次資料。這樣可以極大的保證叢集穩定,減少記憶體和磁碟佔用
2.--max-request-bytes
etcd Raft訊息最大位元組數,ETCD預設該值為1.5M; 但是很多業務場景發現同步資料的時候1.5M完全沒法滿足要求,所以提前確定初始值很重要; 由於1.5M導致我們線上的業務無法寫入元資料的問題,
我們緊急升級之後把該值修改為預設32M,但是官方推薦的是10M,大家可以根據業務情況自己調整
#最好按照官方的預設限制來儲存,單個value不要超過10M,只要不超過10M生產環境就會很穩定,一旦超過10M叢集就會變的不穩定;
3.--quota-backend-bytes
ETCDdb資料大小,預設是2G,當資料達到2G的時候就不允許寫入,必須對歷史資料進行壓縮才能繼續寫入; 參加1裡面說的,我們啟動的時候就應該提前確定大小,官方推薦是8G,這裡我們也使用8G的配置
#啟動命令
/usr/bin/etcd --auto-compaction-retention '1' --max-request-bytes '33554432' --quota-backend-bytes '8589934592'