ALM-38009 Broker磁盤IO繁忙
更新時間 2023-08-24 10:07:05
最近更新時間: 2023-08-24 10:07:05
分享文章
本章節主要介紹ALM-38009 Broker磁盤IO繁忙的告警。
告警解釋
系統每60秒周期性檢測Kafka各個磁盤的IO情況,當檢測到某個Broker上的Kafka數據目錄磁盤IO超出閾值(默認80%)時,產生該告警。
平滑次數為3,當該磁盤IO低于閾值(默認80%)時,告警恢復。
告警屬性
| 告警ID | 告警級別 | 是否自動清除 |
|---|---|---|
| 38009 | 重要 | 是 |
告警參數
| 參數名稱 | 參數含義 |
|---|---|
| 來源 | 產生告警的集群名稱。 |
| 服務名 | 產生告警的服務名稱。 |
| 角色名 | 產生告警的角色名稱。 |
| 主機名 | 產生告警的主機名。 |
| 數據目錄名稱 | Kafka磁盤IO頻繁的數據目錄名稱 |
對系統的影響
Partition所在的磁盤分區IO過于繁忙,產生告警的Kafka Topic上可能無法寫入數據。
可能原因
- Topic副本數配置過多。
- 生產者消息批量寫入磁盤的參數設置不合理。該Topic承擔的業務流量過大,當前Partition的設置不合理。
處理步驟
檢查Topic副本數配置
在FusionInsight Manager首頁,選擇“運維 > 告警 > 告警”,單擊此告警所在行的
,查看定位信息中上報告警的“主題名”。
- 在FusionInsight Manager首頁,選擇“集群 > 待操作集群的名稱 > 服務 > Kafka > KafkaTopic監控”,搜索發生告警的Topic,查看副本數量。
- 如果副本數量值大于3,則考慮減少該Topic的復制因子(減少為3)。
在FusionInsight客戶端執行以下命令對Kafka Topic的副本進行重新規劃:
kafka-reassign-partitions.sh --zookeeper {zk_host}:{port} /kafka --reassignment-json-file {manual assignment json file path} --execute
例如:
/opt/Bigdata/client/Kafka/kafka/bin/kafka-reassign-partitions.sh --zookeeper 10.149.0.90:2181,10.149.0.91:2181,10.149.0.92:2181/kafka --reassignment-json-file expand-cluster-reassignment.json --execute
說明在expand-cluster-reassignment.json文件中描述該Topic的Partition遷移到哪些Broker。其中json文件中的內容格式為:{"partitions":[{"topic": " topicName ","partition":1,"replicas": [1,2,3] }],"version":1}。
- 觀察一段時間,看告警是否消失。如果告警沒有消失,執行步驟5。
檢查Topic的Partition規劃設置。
在“KafkaTopic監控”頁面單擊每一個Topic的“Topic的字節流量 > Topic輸入的字節流量”,統計出“Topic輸入的字節流量”值最大的Topic。查看該Topic有哪些Partition以及這些Partition所在的主機信息。
- 登錄到步驟5查詢到的主機,執行iostat -d -x命令查看每個磁盤的最后一個指標“%util”:


- 各個磁盤的“%util”指標都比較高,則考慮對Kafka磁盤進行擴容,擴容后,參考步驟3,對Topic的Partition重新規劃。
- 各個磁盤的“%util”指標差別較大,查看Kafka的磁盤分區配置信息。例如: ${BIGDATA_HOME}/FusionInsight_HD_8.1.0.1/1_14_Broker/etc/server.properties文件中的log.dirs配置值。
執行如下命令查看命令輸出的Filesystem信息:
df -h log.dirs 配置值
執行結果如下:


- Filesystem所在的分區與“%util”指標比較高的分區相匹配,則考慮在空閑的磁盤上規劃Kafka分區,并將log.dirs設置為空閑磁盤目錄,然后參考步驟3,對Topic的Partition重新規劃,保證該Topic的Partition均勻分布到各個磁盤。
- 觀察一段時間,檢查告警是否清除。
- 告警清除,操作結束。
- 告警沒有清除,重復執行步驟5~步驟6三次。重復執行次數達到上限,執行步驟8。
- 觀察一段時間,檢查告警是否清除。
- 是,操作結束。
- 否,執行步驟9。
收集故障信息。
在FusionInsight Manager界面,選擇“運維 > 日志 > 下載”。
- 在“服務”中勾選待操作集群的“Kafka”。
- 單擊右上角的

設置日志收集的“開始時間”和“結束時間”分別為告警產生時間的前后10分鐘,單擊“下載”。 - 請聯系運維人員,并發送已收集的故障日志信息。
告警清除
此告警修復后,系統會自動清除此告警,無需手工清除。
參考信息
無。