[关闭]
@xtccc 2016-12-06T02:27:50.000000Z 字数 2116 阅读 2380

使用SIGAR监控系统资源

给我写信
GitHub

此处输入图片的描述

开发技巧

1. 什么是SIGAR?


SIGAR提供了统一的API来监控以下资源:



SIGAR提供了对多种语言的支持,例如Java、Perl、Python、Ruby等。


请看 SIGAR Github项目




2. 使用SIGAR


SIGAR在使用之前需要针对具体的平台进行构建,然后生成相应的文件后再使用。
下面展示怎样在CentOS 64bit平台上通过Java client来使用SIGAR对CPU进行监控。

2.1 下载和构建

首先下载SIGAR的git源码

下载好了之后,进入bindings/java目录,然后运行命令:

  1. $ ant

运行成功后,可以看到bindings/java目录下有如下的目录:

  1. drwxr-xr-x 5 root root 4096 Dec 5 10:46 build
  2. -rw-r--r-- 1 root root 17466 Dec 5 10:08 build.xml
  3. drwxr-xr-x 2 root root 4096 Dec 5 16:10 examples
  4. drwxr-xr-x 4 root root 4096 Dec 5 10:08 hyperic_jni
  5. drwxr-xr-x 2 root root 4096 Dec 5 10:08 lib
  6. drwxr-xr-x 4 root root 4096 Dec 5 10:46 sigar-bin
  7. drwxr-xr-x 4 root root 4096 Dec 5 10:08 src

其中,sigar-bin/lib/sigar.jar就包含了SIGAR for Jave的实现代码,我们的Java程序只要在classpath中包含该JAR包就可以了。


2.2 使用Java client

在bindings/java/examples中是2个使用Java client的示例Java代码文件,我们在其中再增加一个Java文件:

  1. // CpuList.java
  2. import org.hyperic.sigar.*;
  3. class CpuList {
  4. public static void main(String[] args) throws
  5. SigarException, InterruptedException {
  6. Sigar sigar = new Sigar();
  7. int i = 0 ;
  8. while (true) {
  9. i += 1;
  10. if (i > 10)
  11. return;
  12. CpuPerc cpu = sigar.getCpuPerc();
  13. System.out.println(cpu.toString());
  14. Thread.sleep(3*1000);
  15. }
  16. }
  17. }

该文件的目的实际上是每隔3秒打印出当前CPU的使用状况,连续打印10次后退出。



编译

在bindings/java目录下,执行命令:

  1. $ javac -classpath sigar-bin/lib/sigar.jar:examples examples/CpuList.java

编译成功后,会生成文件examples/CpuList.class



运行

运行命令:

  1. $ java -cp sigar-bin/lib/sigar.jar:examples CpuList
  2. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.6% idle
  3. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.5% idle
  4. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.2% wait, 24.2% idle
  5. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.6% idle
  6. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.5% idle
  7. CPU states: 75.4% user, 0.0% system, 0.0% nice, 0.0% wait, 24.4% idle
  8. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.5% idle
  9. CPU states: 75.4% user, 0.0% system, 0.0% nice, 0.0% wait, 24.4% idle
  10. CPU states: 75.3% user, 0.0% system, 0.0% nice, 0.0% wait, 24.5% idle
  11. CPU states: 75.2% user, 0.1% system, 0.0% nice, 0.0% wait, 24.5% idle

OK, 调用成功。

以上数据代表什么意义? 参考 UNDERSTANDING LINUX CPU STATS

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注