2013-05-08 68 views
3

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

+0

JVisualVM使用jstat API,而不是JMX,显示CPU利用率图表 – 2013-05-12 07:11:04

回答

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),或一半的人,如果你不指定一个数字

需要注意的是,与CMS和G1,你可以设定一些目标到GC与下列选项:

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

  • -XX:GCPauseIntervalMillis=<X>将设置http://jvm-options.tech.xebia.fr/

    :二GC周期

源之间的最小时间间隔的目标

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

希望有帮助!

+0

我的意思是让类似,你可以找到使用VisualVM的什么信息。在给定的时间点,GC使用一个完整的核心(或更多),或者当我说的百分比超过一段时间,比如在最近的1秒内说的GC时间的百分比时,GC就不会使用它。 – Ritwaj 2013-05-10 10:06:29

+0

串行和并行GC是STW,并在内存池已满时启动,因此您无法限制它们。你可以设定目标为CMS和G1,我已经编辑了我的答案和更多信息。 – 2013-05-11 10:47:00

0

很遗憾,此信息不可通过JMX(恕我直言,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 - CPU时间以来的JVM
  • FGCT开始通过微小的收藏消耗秒 - CPU时间秒自JVM启动消耗的未成年人集合
  • GCT - 以上
0

也许总和可以帮助你(有看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 
相关问题