我们正在为gc设置监控 Kafka
,它正在运行jolokia jmx代理。我们正在使用 Telegraph
把jmx从系统中运到我们的 Grafana
用于绘制图形的服务器。
当我们检查 G1 GC count for Old Generation
我们可以看到收集次数和收集时间
但是内存池的下降 G1 Old Gen
如下图所示
运行 Kafka
使用以下命令进行处理: -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
有人能指出这个问题吗。
1条答案
按热度按时间tyky79it1#
g1垃圾收集器使用3种类型的收集(都是stop-the-world)
年轻的gc只收集年轻的空间
mixer gc从旧空间收集年轻空间+少数区域
完全gc—紧急gc收集所有内容,如果增量收集无法跟上应用程序内存使用率,则会触发此事件
理想情况下,完全gc永远不会发生在g1中。
关于jmx计数器,-young和mixer算作young gc-full gc算作old
正如我所说的,在g1的情况下,旧的gc jmx计数器应该保持在0,尽管旧的空间是由年轻的集合(增量)回收的。