Kafka集群優化篇-調整broker的堆內存(heap)案例實操
作者:尹正傑
版權聲明:原創作品,謝絕轉載!否則將追究法律責任。
一.查看kafka集群的broker的堆內存使用情況
1>.使用jstat查看gc的信息([root@kafka116 ~]# jstat -gc 12698 1s 30)
參數說明:S0C:第一個幸存區的大小
S1C:第二個幸存區的大小
S0U:第一個幸存區的使用大小
S1U:第二個幸存區的使用大小
EC:伊甸園區的大小
EU:伊甸園區的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法區大小
MU:方法區使用大小
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
YGC:年輕代垃圾回收次數
YGCT:年輕代垃圾回收消耗時間
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
2>.使用jmap查看kafka當前的堆內存信息([root@kafka116 bin]# jmap -heap 12698)
經過上面兩個圖的分析,我們要觀察伊甸區,幸存區以及年老代總體的使用量,發現他們的使用率都是80%以上呢!而且gc的評論是74萬多次,過多的gc會將服務器的性能降低。因此考慮調大Kafka集群的堆內存(heap)是刻不容緩的事情。好,接下來我們如何去調試呢?以及將對內存調大應該注意那些事項呢?
第一:kafka集群不要集體修改,要一台一台的去調整,由於我有5台broker,它允許我掛掉2台broker;
第二:修改kafka-server-start.sh啟動腳本,建議先改成15G(我的kafka集群的配置相對較低,32G內存,32core,80T硬盤),如果還是不夠的話可以考慮繼續加大heap內存的配置;
二.對kafka進行調優案例實操
1>.查看默認的配置
2>.修改kafka啟動腳本的配置文件
3>.重啟當前broker的Kafka服務
[root@kafka116 bin]# kafka-server-stop.sh #停止當前的kafka進程 [root@kafka116 bin]# [root@kafka116 bin]# kafka-server-start.sh -daemon /soft/kafka/config/server.properties #啟動當前的kafka進程 [root@kafka116 bin]# [root@kafka116 bin]# [root@kafka116 bin]# jps #查看kafka進程是否啟動 5460 Kafka 4246 ProdServerStart 23014 Jps [root@kafka116 bin]#
4>.查看調優后的內存
5>.查看調整后的JVM使用情況