我们正在为运行{em> Jolokia JMX 代理的Kafka
的GC设置监视。
我们正在使用Telegraph
将JMX从系统中运送到我们的Grafana
服务器以绘制图形。
当我们检查G1 GC count for Old Generation
时,我们可以看到收集计数和收集时间为
使用以下命令来运行Kafka
进程的Java参数:
-javaagent:/usr/lib/jolokia/jolokia-jvm-1.5.0-agent.jar -Xmx2G -Xms2G -XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true -Xloggc:/home/test/kafka_2.12-1.0.1/bin/../logs/kafkaServer-gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=8000 -Djava.rmi.server.hostname=172.31.24.149 -Dkafka.logs.dir=/home/test/kafka_2.12-1.0.1/bin/../logs -Dlog4j.configuration=file:./bin/../config/log4j.properties
谁能指出这个问题。
答案 0 :(得分:7)
G1垃圾收集器利用了3种类型的收集器(全部都是Stop-the-World)
理想情况下,G1中永远不会发生完全GC。
关于JMX计数器, -年轻和混合器被视为年轻GC -完整的GC被视为旧的
正如我说的那样,对于G1,旧的JMX计数器预计将保持为0,尽管年轻集合会回收(逐渐地)回收旧空间。