如何使用sigar获取磁盘性能,我知道iostat会返回磁盘使用情况,但我需要与磁盘写入和读取速度相关的信息。
unix上的本机iostat会返回这些数据,但是,我正在开发一个基于java的应用程序,其中一个目的是多平台,而sigar到目前为止一直运行良好。
我主要担心的是Windows,所以有人知道如何在Sigar下甚至在Windows下获取此信息?
答案 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。