Tag: visualvm sigar

使用Sigar API获取JVM CPU使用率

我正在使用Sigar来获取应用程序服务器中当前运行的JVM的CPU使用率,并将其存储为此数据的历史视图,但我总是获得0%的CPU百分比。 同时,我保持我的visualVM开放以监控CPU使用率,并且我看到CPU%在visualVM中定期更改,而它总是使用Sigar报告0%。 这是我定期运行的代码: Sigar sigar = new Sigar(); ProcCpu cpu = null; long pId = sigar.getPid(); // This one gives me the same process ID that I see in visualVM try { cpu = sigar.getProcCpu(pId); } catch (SigarException se) { se.printStackTrace(); } System.out.print(cpu.getPercent()); 此代码始终为0%。 在这种情况下,我做错了什么? 如何让Sigar显示类似于VisualVM中显示的CPU使用率? 我尝试添加 cpu.gather(sigar, pId); 在调用getProcCpu(pid)之后,即使我不断增加和减少服务器上的负载,我仍然只获得两个值(0.0和9.08729312E-315)…