gpt4 book ai didi

java - 如何使用 perfmon 记录 tomcat 进程的 CPU 和内存使用情况

转载 作者:行者123 更新时间:2023-11-28 23:30:45 25 4
gpt4 key购买 nike

我的 Java 应用程序部署在 Tomcat 应用程序服务器上。使用 TaskManager,我可以看到 CPU 和内存使用情况。 Jconsole 显示的同一进程 ID 的内存使用情况与任务管理器显示的内存使用情况不同。这是因为任务管理器显示整个系统内存,而 Jconsole 显示分配给 JVM 的内存。如果我的理解有误,请指正。

我想通过我的 Java 应用程序进程 ID 记录特定时间跨度内的内存和 CPU 使用情况。如果我尝试使用 perfmon,它会显示所有进程的使用情况。有什么方法可以在 perfmon 中为一个特定的进程 ID 以及我需要在其中选择哪些计数器进行配置。

谢谢。

最佳答案

"I want to log memory and CPU usage by my java application process Id for a particular span of time."

您可以使用 JavaMissionControl 中的 FlightRecorder。它可以在 Oracle JDK(我认为 >6)的二进制目录中找到,它叫做“jmc.exe”。将以下参数添加到 Tomcat,可能是 CATALINA_OPTS:

-XX:+UnlockCommercialFeatures -XX:+FlightRecorder 

如果您只对值感兴趣,可以使用 JMX。也看看 JavaMissionControl 中的“MBeanBrowser”。例如:

MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();
double cpuLoad = (double) mbeanServer.getAttribute(new ObjectName("java.lang", "type", "OperatingSystem"), "SystemCpuLoad");

关于java - 如何使用 perfmon 记录 tomcat 进程的 CPU 和内存使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30479471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com