1. 程式人生 > >0006-Zookeeper指標分析

0006-Zookeeper指標分析

溫馨提示:要看高清無碼套圖,請使用手機開啟並單擊圖片放大檢視。

1. 問題描述

通過CDH管理平臺,進入Zookeeper管理介面,Zookeeper的平均請求延遲、最小請求延遲、最大請求延遲指標趨勢圖維持不變,指標資料異常。

2.問題復現

  • 登入CDH平臺,進入Zookeeper管理頁面,檢視Zookeeper各伺服器狀態,頁面如下:

  • 檢視如下指標

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

3.問題分析

3.1 指標來源

  • 該指標是CDH通過ZookeeperJMX方式獲取,具體參考Zookeeper官網
  • 通過命令方式獲取Zookeeper指標資訊

通過以上分析可以判斷指標資料非CDH計算得來,而是Zookeeper計算,排除CM問題;

3.2 分析Zookeeper原始碼

  • 命令列呼叫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。

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,資料玩的花!
溫馨提示:要看高清無碼套圖,請使用手機開啟並單擊圖片放大檢視。