我们经常有这样的需求,想得到系统CPU的基本信息、使用率等等。使用Sigar可以很好的完成这一需求。
通过Sigar我们可以获得CPU的基本信息有:vendor、model、mhz、cacheSize;CPU的统计信息有:user进程占用的百分比、sys进程占用的百分比、nice进程占用的百分比、idle进程占用的百分比、wait进程占用的百分比。
下面通过例子说明用法:
package lab.sigar;
import org.hyperic.sigar.Cpu;
import org.hyperic.sigar.CpuInfo;
import org.hyperic.sigar.CpuPerc;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import com.thoughtworks.xstream.XStream;
/**
* Cpu数据
*
* 使用Sigar获得CPU的基本信息、使用百分比、使用时间
*
*/
public class CpuData {
private CpuInfo info;
private CpuPerc perc;
private Cpu timer;
public CpuData() {
}
public void populate(Sigar sigar) throws SigarException {
info = sigar.getCpuInfoList()[0];
perc = sigar.getCpuPerc();
timer = sigar.getCpu();
}
public static CpuData gather(Sigar sigar) throws SigarException {
CpuData data = new CpuData();
data.populate(sigar);
return data;
}
public static void main(String[] args) throws Exception {
Sigar sigar = new Sigar();
CpuData cpuData = CpuData.gather(sigar);
XStream xstream = new XStream();
xstream.alias("CpuData", CpuData.class);
System.out.println(xstream.toXML(cpuData));
}
}
输出:
<CpuData>
<info>
<vendor>Intel</vendor>
<model>Pentium M</model>
<mhz>1862</mhz>
<cacheSize>-1</cacheSize>
</info>
<perc>
<user>0.12574850299401197</user>
<sys>0.031936127744510975</sys>
<nice>0.0</nice>
<idle>0.8423153692614771</idle>
<wait>0.0</wait>
</perc>
<timer>
<user>932250</user>
<sys>520375</sys>
<nice>0</nice>
<idle>6366031</idle>
<wait>0</wait>
<total>7818656</total>
</timer>
</CpuData>
分享到:
相关推荐
程序用到的jar 博文链接:https://wangrui.iteye.com/blog/153002
SIGAR是由Hadoop项目的主要贡献者之一——Yammer(现为微软一部分)开发的,它提供了丰富的API,使得开发者能够轻松地在不同操作系统上收集系统级的数据,如CPU使用率、内存状态、网络流量、磁盘I/O等。 SIGAR库的...
Sigar(System Information Gatherer and Reporter)是一款跨平台的开源库,它允许程序开发者轻松地获取操作系统和网络设备的各种信息,如CPU使用率、内存使用情况、网络接口统计、进程列表等。在"sigar读取系统信息...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它提供了一种简单的方法来获取操作系统级别的信息,包括CPU、内存、网络、磁盘和其他资源的状态。本项目将详细介绍如何利用...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它提供了一种简单、统一的方式来获取操作系统的基本信息,包括但不限于内存状态、CPU使用率、进程信息、网络状态、磁盘I/O等...
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。 Sigar资料地址:https://support.hyperic.com/display/SIGAR/Home Sigar提供了一...
它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, HP-UX, FreeBSD and Mac OSX. Sigar有C,C#,Java和Perl API,java版的API为sigar.jar sigar.jar的底层是用C语言编写的,它通过...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统度量工具,它允许开发者获取各种操作系统级别的信息,包括但不限于CPU使用率、内存状态、网络连接、文件系统统计等。这个压缩包包含了运行...
SIGAR提供了一致的接口来获取各种操作系统的信息,如CPU使用率、内存状态、网络配置、进程信息等。 描述中提到的错误可能是在尝试使用SIGAR库时,由于缺少必要的库文件或者配置,导致程序无法正常运行。解决方法是...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集库,它允许开发者以一致的方式获取多种操作系统上的系统状态信息,包括但不限于CPU使用率、内存利用率、磁盘使用情况等。...
Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一款跨平台的系统监控库,它提供了丰富的API,可以方便地获取操作系统级别的信息,包括CPU、内存、进程、磁盘等资源的使用情况。...
CPU信息:包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait) 文件系统信息:包括Filesystem、Size、Used、Avail、Use%、Type 事件信息:类似Service Control Manager 内存...
本项目主要关注如何使用Sigar库在Java环境下获取系统信息,特别是内存、磁盘和JVM虚拟机的相关数据。 一、获取系统内存信息 在Java中使用Sigar库获取系统内存信息,主要涉及以下几个方面: 1. **总内存**:通过`...
Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它为开发者提供了一种简单的方式来获取操作系统及硬件的各种信息。Sigar库由Hypertable项目开发并维护,现在已成为Apache软件基金...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方法来获取操作系统的关键信息,如CPU使用率、内存使用情况、网络流量、磁盘I/O等。在Java中使用Sigar库...
- `sigar.getCpuPerc()` 或 `sigar.getCpuPercList()` 可以获取CPU使用率,包括用户使用量、系统使用量、空闲量和总使用量。 2. **内存信息获取**: - `sigar.getMem()` 可以获取物理内存的总量、已使用量和剩余...
1. **CPU监控**:通过`sigar`库,开发者可以获取CPU的整体利用率、每个核心的利用率、用户模式和内核模式的CPU时间等数据。这对于分析系统负载、识别CPU瓶颈以及优化进程调度具有重要意义。 2. **内存管理**:`...
对于CPU监控,Sigar库允许我们获取系统整体CPU利用率,以及每个进程的CPU使用情况。这包括用户CPU时间、系统CPU时间、空闲时间和等待I/O的时间。通过这些数据,我们可以分析出服务器是否受到CPU瓶颈的影响,或者哪个...