java如何监控磁盘IO性能

猴子搬的逗比 2014-05-05 05:51:04
想实现的功能是windows资源监视器类似的效果
可以监测当前的磁盘活动

如上图所示,可以获取单个和所有进程的磁盘I/O读写信息
Java有提供相应的API吗?
还有获取CPU的利用率,分核
或者通过调用外部动态库的方式获取,有大神有过类似的经验吗? 求指点
...全文
827 3 打赏 收藏 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
乔不思 2014-05-05
  • 打赏
  • 举报
回复
mark一下。。。。
猴子搬的逗比 2014-05-05
  • 打赏
  • 举报
回复
引用 1 楼 zhouren1314 的回复:
帮你顶一下,,我也想知道

public long getTotalByte(){
		Sigar sigar = new Sigar();
		long totalByte = 0;
		try {
			FileSystem[] fslist = sigar.getFileSystemList();
			for (int i = 0; i < fslist.length; i++){
				if (fslist[i].getType() == 2){
					 FileSystemUsage usage = sigar.getFileSystemUsage(fslist[i].getDirName());
					 totalByte += usage.getDiskReadBytes();
					 totalByte += usage.getDiskWriteBytes();
				}
			}
		} catch (SigarException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return totalByte;
	}

public static void main(String[] args) {
		TestIO io = new TestIO();
		long tempTotal = io.getTotalByte();
		for (int i = 0; i < 200; i++) {
			try {
				Thread.sleep(1000);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			long total = io.getTotalByte();
			System.out.println( Integer.valueOf((int) ((total - tempTotal) / 1000)) + "kb");
			tempTotal = total;
		}
	}
引用jar包:http://sourceforge.net/projects/sigar/ 折磨了两天了 终于解决了
乔不思 2014-05-05
  • 打赏
  • 举报
回复
帮你顶一下,,我也想知道

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧