我们在生产环境中运行HBase HMaster流程。通常日志文件中有这么多日志。但是对于特定的周期性,没有记录,我们认为gc发生。正如预期的那样,gc当时发生,但整个时期都没有。
例如,gc从32:24开始,持续25.53秒。但我从32:06到32:49没有得到任何记录。我想知道在gc之前发生了什么。它似乎也“停止了世界”。
我确信HMaster在其进程正在运行时写入了日志。它是关于CPU时间的吗?我怎么能搞清楚?
答案 0 :(得分:0)
试试这个:
-server -d64 -Xms10240m -Xmx10240m -XX:PermSize=512M -XX:MaxPermSize=512M -XX:NewSize=5120m -XX:MaxNewSize=5120m -XX:-UseAdaptiveSizePolicy -XX:+UseParNewGC -XX:SurvivorRatio=20 -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+OptimizeStringConcat -XX:ParallelGCThreads=8 -XX:ConcGCThreads=8 -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:+ParallelRefProcEnabled -XX:+CMSScavengeBeforeRemark -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath="${bundled.server.access.log}" -Xloggc:"${bundled.server.access.log}"/java_gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintTenuringDistribution
此设置使您的伊甸园空间+幸存者= 5GB,旧生成= 5GB。 删除MaxDirectMemorySize参数,因为JVM会自动缩放直接mem缓冲区