一.查看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)是刻不容緩的事情。好,接下來咱們如何去調試呢?以及將對內存調大應該注意那些事項呢?post
第一:kafka集羣不要集體修改,要一臺一臺的去調整,因爲我有5臺broker,它容許我掛掉2臺broker;性能
第二:修改kafka-server-start.sh啓動腳本,建議先改爲15G(個人kafka集羣的配置相對較低,32G內存,32core,80T硬盤),若是仍是不夠的話能夠考慮繼續加大heap內存的配置;學習
二.對kafka進行調優案例實操大數據
1>.查看默認的配置spa
2>.修改kafka啓動腳本的配置文件調試
3>.重啓當前broker的Kafka服務code
[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使用狀況