GC使用JMX使用的CPU百分比

时间:2013-05-08 11:18:41

标签: java performance garbage-collection monitoring jmx

我正在尝试编写一个程序,该程序使用JMX来查找JVM在那个时刻(或者一小部分时间,例如1秒)用于GC活动的CPU百分比,类似于JVisualVM。使用JMX我能够在lasdt GC循环开始和结束的时间找到GarbageCollectionTime。但尚未找到将此信息转换为GC的CPU利用率的方法。

3 个答案:

答案 0 :(得分:0)

好吧,你将无法以编程方式找到答案。 GC将使用100%的可用CPU。真正的问题是“有多少CPU可用?”

  • 系列GC(-XX:+UseSerialGC)将使用一个 CPU。

  • 并行收集器(-XX:+UseParallelGC-XX:+UseParallelOldGC-XX:+UseParNewGC)将使用您提供的CPU数量-XX:ParallelGCThreads=N) ,如果您没有指定数字,则为全部

  • 大多数并发收藏家(-XX:+UseConcMarkSweepGC-XX:+UseG1GC)将使用您提供的CPU数量-XX:ConcGCThreads=N),或者ĥalf如果你没有指定一个数字

请注意,使用CMS和G1,您可以使用以下选项为GC设置一些目标:

  • -XX:MaxGCPauseMillis=X将以毫秒为单位设置最长暂停时间目标:

  • -XX:GCPauseIntervalMillis=<X>将设置两个GC周期之间的最小间隔目标

来源:http://jvm-options.tech.xebia.fr/

您可以在this page上找到解析iCMS日志的提示,以及this page上有关GC调整的提示。

希望有所帮助!

答案 1 :(得分:0)

不幸的是,这些信息无法通过JMX获得(IMHO VisualVM显示器显示不正确的GC CPU时间)。

您可以使用jstat -gc <pid>收集JVM的车库收集CPU使用情况。

jstat -gc <pid> 1s会产生类似这样的内容

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
6528.0 6528.0 6523.9 6528.0 52480.0  51600.0  2097152.0  1697279.8  21248.0 5647.8     39    6.873   5     11.685   18.559
6528.0 6528.0  0.0   6528.0 52480.0  13355.5  2097152.0  1794839.9  21248.0 5649.8     41    7.322   5     11.685   19.008
6528.0 6528.0  0.0   6528.0 52480.0  27790.8  2097152.0  1884439.9  21248.0 5649.8     43    7.646   5     11.685   19.332
6528.0 6528.0  0.0   6528.0 52480.0  50942.9  2097152.0  1974055.9  21248.0 5649.8     46    7.969   5     11.685   19.654
  • YGCT - 自JVM启动以来,次要集合占用的CPU时间是
  • FGCT - 自JVM启动以来,次要集合占用的CPU时间为
  • GCT - 上述总和

答案 2 :(得分:0)

也许jvmtop可以帮助您(查看GC列)

 JvmTop 0.3 alpha (expect bugs)  amd64  8 cpus, Linux 2.6.32-27, load avg 0.12
 http://code.google.com/p/jvmtop

  PID MAIN-CLASS      HPCUR HPMAX NHCUR NHMAX    CPU     GC    VM USERNAME   #T DL
 3370 rapperSimpleApp  165m  455m  109m  176m  0.12%  0.00% S6U37 web        21
11272 ver.resin.Resin [ERROR: Could not attach to VM]
27338 WatchdogManager   11m   28m   23m  130m  0.00%  0.00% S6U37 web        31
19187 m.jvmtop.JvmTop   20m 3544m   13m  130m  0.93%  0.47% S6U37 web        20
16733 artup.Bootstrap  159m  455m  166m  304m  0.12%  0.00% S6U37 web        46