sigar 求所有内存_sigar获取单个进程资源(CPU、内存使用率)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

我利用sigar做了一个监控程序,用于监控机器硬件性能。

但是我只会用sigar获取服务器整体的CPU、内存使用率,

无法根据pid获取指定进程的资源信息。

在网上也找了一段时间,

感觉sigar应该是可以实现这个功能的,

只是我不知道该怎么写。

也找了一些代码,但运行的时候报了一个奇怪的异常,

一直无法解决,请你们帮我看看,

或者告诉我应该怎么写。

代码:

1.public static void getProCpu(String pro_name) throws SigarException {

2.      Sigar sigar = new Sigar();

3.      long[] pids = sigar.getProcList();

4.      for (long pid : pids) {

5.           ProcState prs = sigar.getProcState(pid);

6.           ProcCpu pCpu = new ProcCpu();

7.           pCpu.gather(sigar, pid);

8.           System.out.println(prs.getName());

9.      }

10. }

运行时异常:发生在第7行

Exception in thread "main" org.hyperic.sigar.SigarPermissionDeniedException: ???·???

at org.hyperic.sigar.ProcCpu.gather(Native Method)

at com.sunyard.equ.EquInfo.getProCpu(EquInfo.java:95)

at com.sunyard.equ.EquInfo.main(EquInfo.java:101)

我把sigar的源码反编译出来看了下,发现gather是一个native方法,实在没办法。。。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值