java CMS gc 日志中的“real”、“user”和“sys”是什么意思?

2024-01-07

对于以下 Java 版本:

OpenJDK 版本“1.6.0”
OpenJDK 运行时环境(内部版本 1.6.0-b23)
OpenJDK 64 位服务器 VM(内部版本 20.0-b11,混合模式)

使用以下 GC 标志:

-详细:gc
-XX:+使用ConcMarkSweepGC
-XX:+CMSClassUnloading启用
-XX:+打印GC详细信息
-XX:+PrintGCDateStamps

我们得到如下日志行:

2012-11-09T16:46:53.438-0100:[CMS并发标记:4.039/4.060秒] [时间:用户=4.09 系统=35.05,真实=4.06 秒]

初始“4.039/4.060 秒”应根据https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs意味着并发标记总共花费了 4.039 秒的 cpu 时间和 4.060 秒的挂起时间(也包括其他线程的产量)。

但是这里的 user、sys 和 real 值是什么意思呢?


  1. sys 和 user 都是 CPU 时间。因此,它们不包括进程被 CPU 阻塞或执行 I/O 等的时间。

  2. GC 时间通常应与 sys+user 时间相似,但如果进程被阻塞或等待,则该时间会更长。这对于串行收集器和单个处理器盒来说是正确的。但是,在多处理器环境(具有并行收集器)中,GC 时间将小于 sys+user 时间,因为存在多个 CPU。

  3. 实际时间与 GC 时间相似。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java CMS gc 日志中的“real”、“user”和“sys”是什么意思? 的相关文章

随机推荐