如何获取磁盘性能信息?

时间:2011-10-16 14:56:17

标签: java performance disk sigar

如何使用sigar获取磁盘性能,我知道iostat会返回磁盘使用情况,但我需要与磁盘写入和读取速度相关的信息。

unix上的本机iostat会返回这些数据,但是,我正在开发一个基于java的应用程序,其中一个目的是多平台,而sigar到目前为止一直运行良好。

我主要担心的是Windows,所以有人知道如何在Sigar下甚至在Windows下获取此信息?

3 个答案:

答案 0 :(得分:4)

查看org.hyperic.sigar.cmd.Iostat.java的源代码。 您可以通过以下方式获取代表本地磁盘的所有文件系统:

FileSystem[] fileSystemList = this.proxy.getFileSystemList();
for (int i = 0; i < fileSystemList.length; i++) {
    FileSystem fs = fileSystemList[i];
    if (fs.getType() == FileSystem.TYPE_LOCAL_DISK){
    FileSystemUsage usage = this.sigar.getFileSystemUsage(fs.getDirName());

    String devName = fs.getDevName();

    long read = usage.getDiskReadBytes();
    long write = usage.getDiskWriteBytes();


    }

}

答案 1 :(得分:-2)

我不知道什么是Sigar,但我认为您可以编写一个小应用程序,将原始数据(不进行任何处理)写入文件或执行文件复制并测量两者之间的时间。 你也可以这样做阅读。

答案 2 :(得分:-3)

我不这么认为。请查看Sigar API。