我在一些地方 [1] 看到人们在生产服务器(关键任务)中启动 GC 日志记录,例如
java -server -Xms1024m -Xmx1024m -XX:NewSize=256m \
-XX:MaxNewSize=256m \
-XX:+UseConcMarkSweepGC \
-XX:CMSInitiatingOccupancyFraction=70
-XX:+PrintGCDetails \
-XX:+PrintGCDateStamps \
-XX:+PrintTenuringDistribution \
-Xloggc:logs/gc.log \
-Djava.awt.headless=true
-Dcom.sun.management.jmxremote -classpath ...
现在生产环境中是否有推荐的做法?
Update:我添加了来自 Oracle 的链接 [2],还建议监视生产服务器上的 GC。
Sources:
[1] https://serverfault.com/questions/121490/java-opts-xxprintgcdetails-affect-on-performance https://serverfault.com/questions/121490/java-opts-xxprintgcdetails-affect-on-performance
[2] http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_checklist.htm#CHHFADDF http://docs.oracle.com/cd/E24290_01/coh.371/e22838/deploy_checklist.htm#CHHFADDF
Yes,这是一种常见的做法。这是经常强烈推荐我在下面给出了例子和参考。
为什么 GC 日志记录对于生产 Java 服务器有好处:
-
最小的开销- GC 日志记录有一个最小的开销到整体系统性能。
- 这是声称的,例如作者:Charlie Hunt,前 JVM 性能架构师,《Java 性能书籍 https://rads.stackoverflow.com/amzn/click/com/0137142528.
- all the 世界纪录 SPEC 基准 http://www.spec.org/jEnterprise2010/results/jEnterprise2010.html运行 Java Enterprise 软件正在运行启用了 GC 日志记录的生产服务器。这证实了日志记录的开销较低,并且发布基准结果的性能专家对日志记录路径进行了高度调整。
长期记录绝对是至关重要的分析应用性能。必须始终启用 GC 日志记录,以便管理员能够观察 GC 行为并相应地调整应用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)