sigar轻松获取cpu、各进程占用cpu、内存、硬盘情况 java
(2011-04-29 14:06:25)
标签:
javasigarcpu内存进程杂谈 |
分类: 技术文档 |
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();
}
//
//
//