【问题标题】:How to get disk performance info?如何获取磁盘性能信息?
【发布时间】:2011-12-08 18:16:44
【问题描述】:
如何使用 sigar 获取磁盘性能,我知道 iostat 返回磁盘使用情况,但我需要与速度相关的信息才能在磁盘中写入和读取。
unix 上的本机 iostat 返回此数据,但是,我正在开发一个基于 java 的应用程序,其中一个目的是多平台,而 sigar 到目前为止工作得很好。
我主要关心的是Windows,所以有人知道如何在Sigar甚至Windows下获取这些信息吗?
【问题讨论】:
标签:
java
performance
disk
sigar
【解决方案1】:
查看 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();
}
}
【解决方案2】:
我不知道什么是 Sigar,但我认为您可以编写一个小型应用程序,将原始数据(不进行任何处理)写入文件或进行文件复制并测量其间的时间。
阅读时也可以这样做。