【问题标题】:In Java, how to get disk write and read bytes per seconds, network tx bytes and rx bytes per seconds?在 Java 中,如何获取每秒磁盘写入和读取字节数、每秒网络 tx 字节数和 rx 字节数?
【发布时间】:2015-08-17 11:17:52
【问题描述】:

我想使用纯 java 来获取磁盘和网络的统计信息。 尤其: 在Java中,如何获取每秒磁盘读写字节数、每秒网络tx字节数和每秒rx字节数?

这可能吗?

【问题讨论】:

  • 我使用java call sar命令,但有些系统没有
  • 我找到了org.hyperic.sigar,但它只提供总字节数,如何获得字节/秒?总字节数/正常运行时间?

标签: java metrics


【解决方案1】:

proc 文件系统和sysfs 可以访问这样的统计信息。

例如,您可以从/proc/net/dev 读取网络 tx 和 rx。

磁盘统计信息可以在/proc/diskstats中找到。

【讨论】:

  • 我读了/proc/net/dev,有总接收字节和总传输字节,但是如何获得字节/秒?总接收字节数/正常运行时间?
  • 这为您提供了整个正常运行时间的平均速度字节/秒,这可能并不有趣。如果你想知道“现在”的传输速度是多少,要么是0,要么是接口的速度,这也不是很有趣。也许您可以每 N 秒读取一次文件,计算差值并除以 N,得出 N 秒期间的平均速度。
【解决方案2】:

我相信您问的问题类似于以下内容:Detect CPU Speed/Memory/Internet Speed using Java?

您也可以使用java.lang.management 包取得一些成功。一些样板被描述为here

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 2019-05-13
    • 2011-11-10
    • 1970-01-01
    • 2020-10-02
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多