可以使用sigar。
http://support.hyperic.com/display/SIGAR/PTQL#PTQL-IdentifyingaUniqueJavaProcess
http://sourceforge.net/projects/sigar/
http://www.hyperic.com/products/sigar
sigar API是跨平台的获取系统信息的API接口。提供了JAVA,PYTHON,C等接口。
获取的信息有:
系统内存,CPU等信息;
单个进程的资源(内存、CPU等)占用信息;
网络接口,路由等信息。
CPU信息获取:
Sigar m_Sigar = new Sigar();;
CpuPerc m_CpuPerc;
m_CpuPerc = m_Sigar.getCpuPerc();
usedPrec = 100 - m_CpuPerc.getIdle() * 100;
获得进程的PID:
Sigar m_Sigar = new Sigar();
long[] pids = ProcessFinder.find(m_Sigar, String processname);
此时,需要在processname前面增加"State.Name.eq=",例如:如果查找进程firefox的pid,
processname 应该为State.Name.eq=firefox.
获得DISK使用信息:
FileSystem[] file ;
FileSystemUsage filesys = new FileSystemUsage();
file = m_Sigar.getFileSystemList();
for (int i = 0; i < file.length; i++) {
String dev = file[i].getSysTypeName();
if (!dev.equalsIgnoreCase("cdrom")) {
filesys = m_Sigar.getFileSystemUsage(file[i].getDevName());
filesys.getUsePercent();
}
}
查找网络端口,返回进程号:
m_Sigar.getProcPort(NetFlags.CONN_TCP, port);
m_Sigar.getProcPort(NetFlags.CONN_UDP, port);
java 系统运行监控
最新推荐文章于 2024-07-30 09:34:31 发布