我们有一段需要监控 CPU 负载的代码。我们可以使用以下代码行获取 CPU 负载:
((com.sun.management.OperatingSystemMXBean) ManagementFactory
.getOperatingSystemMXBean()).getSystemCpuLoad();
测试期间,这个功能运行正常。
当部署到作为服务运行的2012 Windows服务器时,getSystemCpuLoad总是返回-1。
如果我们停止服务并将其作为应用程序运行(仍在2012 Window Server机器上),它再次正常工作。
我已查看类路径差异和环境变量差异,但找不到任何差异。
有人知道为什么在应用程序中运行时getSystemCpuLoad正常工作,而作为服务运行时却不行吗?
OperatingSystemImpl.c
,但是其中有太多的return -1
让我无法追踪。 - Hugues M.