1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > java 监控cpu信息_Java如何使用Java监视计算机的CPU 内存和磁盘使用情况?

java 监控cpu信息_Java如何使用Java监视计算机的CPU 内存和磁盘使用情况?

时间:2021-11-20 23:11:10

相关推荐

java 监控cpu信息_Java如何使用Java监视计算机的CPU 内存和磁盘使用情况?

我想用Java监视以下系统信息:

当前的CPU使用率*(百分比)

可用内存(可用/总计)

可用磁盘空间(可用/总)

*请注意,我的意思是整个系统可用的整体内存,而不仅仅是JVM。

我正在寻找一种不依赖于我自己的调用外部程序或使用JNI的代码的跨平台解决方案(Linux,Mac和Windows)。尽管这些是可行的选择,但如果有人已经有了更好的解决方案,我宁愿自己不要维护特定于操作系统的代码。

如果有一个免费的库以可靠的跨平台方式执行此操作,那将很棒(即使它进行外部调用或本身使用本机代码)也是如此。

任何建议,不胜感激。

为了澄清,我想获得整个系统的当前CPU使用率,而不仅仅是Java进程。

SIGAR API在一个软件包中提供了我正在寻找的所有功能,因此,这是迄今为止我所提问题的最佳答案。但是,由于它是根据GPL许可的,因此我不能将其用于原始用途(封闭源,商业产品)。Hyperic可能会将SIGAR许可用于商业用途,但我尚未对此进行调查。对于我的GPL项目,将来肯定会考虑使用SIGAR。

对于我当前的需求,我倾向于以下方面:

对于CPU使用率,OperatingSystemMXBean.getSystemLoadAverage() / OperatingSystemMXBean.getAvailableProcessors()(每CPU平均负载)

为了记忆,OperatingSystemMXBean.getTotalPhysicalMemorySize()以及OperatingSystemMXBean.getFreePhysicalMemorySize()

对于磁盘空间,File.getTotalSpace()以及File.getUsableSpace()

局限性:

在getSystemLoadAverage()和磁盘空间查询方法仅可用的Java 6此外,根据一些JMX功能可能无法适用于所有平台(即它的报道,getSystemLoadAverage()返回-1在Windows上)。

尽管最初是根据GPL许可的,但已将其更改为Apache 2.0,通常可用于封闭源商业产品。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。