Java CMS gc 日志中的"真实"、'user'和'sys'是什么意思?



对于以下Java版本:

OpenJDK版本" 1.6.0"
OpenJDK运行时环境(构建1.6.0-B23)
OpenJDK 64位服务器VM(构建20.0-B11,混合模式)

使用卵泡GC标志:

- verbose:GC
-xx: useconcmarkSweepgc
-xx: cmsclassunloadingenabled
-xx: printgcdetails
-xx: printgcdatestamps

我们获得了以下日志行,例如:

2012-11-09T16:46:53.438-0100:[CMS-Concurrent-Mark:4.039/4.060秒] [Times:user = 4.09 sys = 35.05,real = 4.06秒]

最初的" 4.039/4.060秒"应根据https://blogs.oracle.com/poonam/entry/entry/endertry/endertry/endertry/endertry/endertry/endertry/endertry/endertry/ccms_gc_logs意味着并发标记总共花费4.039秒的时间4.039秒其他线程也)。

但是用户,系统和实际价值在这里意味着什么?

  1. 系统和用户是CPU时代。因此,它们不包括为CPU阻止该过程的时间或正在使用I/O等。

  2. GC时间通常应与SYS 用户时间相似,但是如果该过程被阻止或等待,则将更高。对于串行收集器和单个处理器框,情况是如此。但是,在多处理器环境(带有并行收集器)中,GC时间将比SYS 用户时间少,因为有多个CPU。

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

最新更新