加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

sigar轻松获取cpu、各进程占用cpu、内存、硬盘情况  java

(2011-04-29 14:06:25)
标签:

java

sigar

cpu

内存

进程

杂谈

分类: 技术文档
Sigar sigar = new Sigar();
  
  
  try {
   long[] pids = sigar.getProcList();
   double total = 0;
   Map<String, Long> procName5PidMap = new HashMap<String, Long>();
   for (long pid : pids) {
    
    ProcState prs = sigar.getProcState(pid);
    ProcCpu pCpu = new ProcCpu();
    pCpu.gather(sigar, pid);
//    System.out.print(prs.getName());
//    System.out.println(" pid: " + pid + " name:" + prs.getName());
    
    total += pCpu.getTotal();
    procName5PidMap.put(prs.getName(), pid);
   }
//   System.out.println("total : " + total);
   
   
   
   Cpu cpu = sigar.getCpu();
   System.out.println("idle: " + cpu.getIdle());//获取整个系统cpu空闲时间
   System.out.println("irq: " + cpu.getIrq());
   System.out.println("nice: " + cpu.getNice());
   System.out.println("soft irq: " + cpu.getSoftIrq());
   System.out.println("stolen: " + cpu.getStolen());
   System.out.println("sys: " + cpu.getSys());
   System.out.println("total: " + cpu.getTotal());
   System.out.println("user: " + cpu.getUser());
   System.out.println();
   
   
   CpuPerc perc = sigar.getCpuPerc();
   System.out.println("整体cpu的占用情况:");
   System.out.println("system idle: " + perc.getIdle());//获取当前cpu的空闲率
   System.out.println("conbined: "+ perc.getCombined());//获取当前cpu的占用率
   
   
   CpuPerc[] cpuPercs = sigar.getCpuPercList();
   System.out.println("每个cpu的资源占用情况:");
   for (CpuPerc cpuPerc : cpuPercs) {
    System.out.println("system idle: " + cpuPerc.getIdle());//获取当前cpu的空闲率
    System.out.println("conbined: "+ cpuPerc.getCombined());//获取当前cpu的占用率
    System.out.println();
   }
   
   
   NetInfo netInfo = sigar.getNetInfo();
   System.out.println("网络信息:");
   System.out.println("gateway:" + netInfo.getDefaultGateway());
   System.out.println("domain name:" + netInfo.getDomainName());
   System.out.println("primary dns:" + netInfo.getPrimaryDns());
   while (true) {
    System.out.println("pid: " + sigar.getPid());//获取当前java进程的pid
    Map map = sigar.getProcEnv(sigar.getPid());//进程环境情况
    System.out.println("wait...");
    Thread.currentThread().sleep(10000000);
   }
  } catch (SigarException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (InterruptedException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有