0006-Zookeeper指標分析

1. 問題描述html

經過CDH管理平臺,進入Zookeeper管理界面,Zookeeper的平均請求延遲、最小請求延遲、最大請求延遲指標趨勢圖維持不變,指標數據異常。java

2.問題復現apache

  • 登陸CDH平臺,進入Zookeeper管理頁面,查看Zookeeper各服務器狀態,頁面以下:

  • 查看以下指標

平均請求延遲、最小請求延遲、最大請求延遲三個指標維持不變,指標異常。服務器

3.問題分析命令行

3.1 指標來源3d

  • 該指標是CDH經過ZookeeperJMX方式獲取,具體參考Zookeeper官網

http://zookeeper.apache.org/doc/r3.5.3-beta/zookeeperJMX.html#ch_jmxhtm

  • 經過命令方式獲取Zookeeper指標信息

經過以上分析能夠判斷指標數據非CDH計算得來,而是Zookeeper計算,排除CM問題;blog

3.2 分析Zookeeper源碼get

  • 命令行調用Zookeeper監控指標代碼片斷(MonitorCommand.java)

經過查看源碼,指標數據是經過ServerStats獲取「請求延遲」指標源碼

  • 分析ServerStats代碼,代碼片斷(ServerStats.java)

ServerStats只提供了updateLatency方法來更新maxLatency和minLatency指標。

  • 調用更新ServerStats方法代碼片斷以下:(FinalRequestProcessor.java)

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。

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!

相關文章
相關標籤/搜索