java - 使用 JMX 的 GC 使用的 CPU 百分比

标签 java performance garbage-collection monitoring jmx

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

最佳答案

嗯,您将无法以编程方式找到答案。 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>将设置两个 GC 周期之间的最小间隔目标

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

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

希望有帮助!

关于java - 使用 JMX 的 GC 使用的 CPU 百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16439275/

相关文章:

java - 在 Android 应用程序中释放共享资源

java - 查找所有 "character-equal"字符串的高效算法?

java - 如何调试<jsp :include> tag?

java - 多线程游戏——更新、渲染以及如何拆分它们

java - 使用 ArrayList 排序进行图形绘制排序

ruby-on-rails - 在 Ruby 中初始化具有高索引的空数组是否昂贵?

java - 为什么java中的finalize()方法不在Finalizer类中?为什么它被定义在对象类中?

java - 确定 PermGen 空间中单个 Java 类定义的大小?

java - 如何在 Java 中向文件写入字符?

java - 将 Ms Access 连接到 java