1. 問題描述html
經過CDH管理平臺,進入Zookeeper管理界面,Zookeeper的平均請求延遲、最小請求延遲、最大請求延遲指標趨勢圖維持不變,指標數據異常。java
2.問題復現apache
平均請求延遲、最小請求延遲、最大請求延遲三個指標維持不變,指標異常。服務器
3.問題分析命令行
3.1 指標來源3d
http://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperJMX.html#ch_jmxhtm
經過以上分析能夠判斷指標數據非CDH計算得來,而是Zookeeper計算,排除CM問題;blog
3.2 分析Zookeeper源碼get
經過查看源碼,指標數據是經過ServerStats獲取「請求延遲」指標源碼
ServerStats只提供了updateLatency方法來更新maxLatency和minLatency指標。
3.3 異常指標分析
經過分析代碼,maxLatency和minLatency指標數據在Zookeeper服務器啓動記錄每次Request的指標數據;
在獲取Zookeeper服務器的的maxLatency和minLatency指標記錄服務器全部請求中最大請求延遲和最小請求延遲;
Zookeeper服務器1,在經過A請求更新ServerStats的maxLatency的指標值爲100ms,在以後全部請求均未超過maxLatency爲100ms的值。CDH平臺每次獲取Zookeeper服務器1的maxLatency指標時均爲100ms,所以致使文章開頭CDH平臺Zookeeper的maxLatency指標維持不變「異常」。
Zookeeper服務器1,在經過A請求後更新ServerStats的minLatency的指標值爲0ms,在以後全部請求均未小於minLatency爲0ms的值。CDH平臺每次獲取Zookeeper服務器1的minLatency指標時均爲0ms,所以致使文章開頭CDH平臺Zookeeper的minLatency指標爲0ms維持不變的「異常」。
Zookeeper服務器1累計全部請求的延遲時間(totalLatency),累計總共請求次數(count),經過totalLatency/count獲取avgLatency指標。至於avgLatency指標持續維持爲0ms,因爲totalLatency <count致使。
由此推斷屢次請求Latency的延遲爲0ms。
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!