線上ZK問題排查

2022-01-10 06:34:50 字數 2161 閱讀 6035

問題描述

測試環境zk集群的三個節點中zk1狀態雖然是follower,啟動也能正常啟動(通過telnet也能telnet 2181埠);無法通過zk客戶端去連線2181埠,狀態一致是connecting

檢視zk集群所有節點狀態

/data/zookeeper-new-1/bin/zkserver.sh status

/data/zookeeper-new-2/bin/zkserver.sh status

/data/zookeeper-new-3/bin/zkserver.sh status

得到zk2是主節點

檢視各個節點的data資料大小

du -h /data/zookeeper/tmp/zk1/data/version-2/ --max-depth=1

du -h /data/zookeeper/tmp/zk2/data/version-2/ --max-depth=1

du -h /data/zookeeper/tmp/zk3/data/version-2/ --max-depth=1

2.4g /data/zookeeper/tmp/zk1/data/version-2/

7.1g /data/zookeeper/tmp/zk2/data/version-2/

7.3g /data/zookeeper/tmp/zk3/data/version-2/

結果: zk1節點的資料落後其它節點太多,檢視zk1的配置資訊(zoo.conf

# the number of milliseconds of each tick

ticktime=2000

# the number of ticks that the initial

# synchronization phase can take

initlimit=10

# the number of ticks that can pass between

# sending a request and getting an acknowledgement

synclimit=5

# the directory where the snapshot is stored.

# do not use /tmp for storage, /tmp here is just

# example sakes.

datadir=/data/zookeeper/tmp/zk1/data

datalogdir=/data/zookeeper/tmp/zk1/log

# the port at which the clients will connect

clientport=2181

兩個引數需要注意

引數名稱

說明ticktime

zk伺服器與客戶端之間心跳維持的時間間隔。每隔ticktime的時間就會傳送乙個心跳。

initlimit

允許所有follower與leader進行同步的時間,如果在設定的時間段內,半數以上的follower未能完成同步,集群會再進行一次選舉。

synclimit

leader與follower之間的同步時間,如果在設定的時間內未完成同步,它將會被集群丟棄。

解決方案

調整synclimit, 如果檔案大小相差較大,可以講時間相應的調大.

將主節點的檔案手動複製到有問題的節點中.

調整zoo.conf定時清理資料快照資訊。減少資料同步資訊

autopurge.snapretaincount=5

# purge task interval in hours

# set to "0" to disable auto purge feature

autopurge.purgeinterval=1

對於集群節點data目錄快照檔案相差非常巨大。用方法2無法使集群正常工作。(即使集群能夠正常啟動起來,過不了多久又會停止工作。但是各個節點角色還是正常的)。考慮到之前有個節點總是掛起。可以想到整個集群資料不能保證一致,可以考慮是否重建資料目錄。這個需要對整個業務衡量

線上問題排查

問題排查方 長期改進建議 由於業務應用 bug 本身或引入第三方庫 環境原因 硬體問題等原因,線上服務出現故障 問題幾乎不可避免。例如,常見的現象包括請求超時 使用者明顯感受到系統發生卡頓等等。作為乙個合格的研發人員 技術人員 不僅要能寫得一手好 掌握如何排查問題技巧也是研發人高階必須掌握的實戰技能...

技術 排查線上問題

產品交付後對於專案管理人員往往就是工作接近尾聲,但是對於一線開發和運維的小夥伴,那是維護工作的起點.線上問題對於程式設計師來說其實就是生產環境中遇到的問題總稱,優先順序對於開發同學和運維同學來說是最高端別.當一位工程師遇到線上問題,一般都會放下手頭的工作,優先全力解決線上問題.往往系統運維工作和線上...

線上操作與線上問題排查實戰

一 了解機器連線數情況 問題 192.168.88.136的sshd的監聽埠是22,如何統計192.168.88.136的sshd服務各種連線狀態 time wait close wait established 的連線數。netstat an grep 192.168.88.136 22 awk ...