- 浏览: 234121 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (163)
- java (140)
- ajax (0)
- flex (1)
- c# (0)
- jbpm (1)
- struts1 (2)
- struts2 (7)
- sql (0)
- mysql (1)
- oracle (0)
- dwr (0)
- jquery (3)
- extJS (2)
- 梦里花落知多少 (0)
- 朝花夕拾 (0)
- hibernate (10)
- spring (40)
- jsp (2)
- 游戏 (10)
- swing (9)
- 俄罗斯方块 (1)
- 编辑器 (1)
- 时间 (2)
- 工具类 (25)
- 乱码 (1)
- mongodb (2)
- nosql (1)
- 解压 (1)
- 正则 (2)
- 开源微博 (1)
- weibo (1)
- htm5 (1)
- html5 (5)
- html (1)
- velocity (1)
- ioc (3)
- servlet (1)
- ffmpeg (1)
- android (1)
- 前端技术 (2)
- 定时任务 (3)
- springmvc (4)
- 整合 (1)
- spring2.5 (1)
- hibernate3.3 (1)
- 入门 (1)
- 实例教程 (1)
- 任务调度 (1)
- javascript (1)
- 计划任务 (1)
- swt (1)
- 语言基础 (1)
- 数据源 (1)
- data source (1)
- 单元测试 (2)
- quartz (2)
- etag (1)
- rest (1)
- ssh (1)
- jtsl (1)
- json (2)
- 线程 (1)
- Memcached (1)
- Spring+AOP (1)
- 缓存 (1)
- cache (1)
- SpringSide3 (1)
- 多数据源 (1)
- 配置 (1)
- 详解 (1)
- maven (1)
- pom (1)
- properties (1)
- 加密解密 (1)
- SpringSide (1)
- demo (1)
- 项目实战 (1)
- 特效 (2)
- 字符串 (1)
- 编码转换 (1)
- seo (1)
- ping (1)
- google (1)
- 百度 (1)
- 多线程 (1)
- jmx (1)
- 事务 (1)
- map (1)
- 语法 (1)
- 队列 (1)
- 邮件 (1)
- 代码 (1)
- Swift (1)
- Apple (1)
- 编程语言 (1)
- 开发 (1)
- 入门教程 (1)
- JS (2)
- 大数据 (1)
- nginx (1)
- tomcat (1)
- 头像 (1)
- gravatar (1)
- jstl (1)
- 图片 (1)
- poi (1)
- 淘宝 (1)
- xml (1)
- svn (1)
- pdf (1)
- 伪静态 (1)
- 插件 (1)
- socket (1)
- 聊天室 (1)
- 文件 (2)
- windows (1)
- 算法 (4)
- rmi (1)
- qq (1)
- 数据库 (1)
最新评论
-
white_crucifix:
@xurping前面4点,果然被你回避了,哎,已经不想吐槽更多 ...
史上最全的maven pom.xml文件教程详解 -
xurping:
white_crucifix 写道真的要把那些我提出的而你回避 ...
史上最全的maven pom.xml文件教程详解 -
white_crucifix:
真的要把那些我提出的而你回避掉的技术方面的提问(反问)和论点, ...
史上最全的maven pom.xml文件教程详解 -
white_crucifix:
@xurping的确,世界上不愿意承认错误的人不止你一个,这没 ...
史上最全的maven pom.xml文件教程详解 -
xurping:
xurping 写道white_crucifix ...
史上最全的maven pom.xml文件教程详解
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,由C语言实现的。可以收集的信息包括:
1, CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)
2, 文件系统信息,包括Filesystem、Size、Used、Avail、Use%、Type
3, 事件信息,类似Service Control Manager
4, 内存信息,物理内存和交换内存的总数、使用数、剩余数;RAM的大小
5, 网络信息,包括网络接口信息和网络路由信息
6, 进程信息,包括每个进程的内存、CPU占用数、状态、参数、句柄
7, IO信息,包括IO的状态,读写大小等
8, 服务状态信息
9, 系统信息,包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等.
Sigar在Java中的使用:
示例代码:
package cn.jsi.buaa; 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 SigarTest { private CpuInfo info; private CpuPerc perc; private Cpu timer; public SigarTest() { } public void populate(Sigar sigar) throws SigarException { info = sigar.getCpuInfoList()[0]; perc = sigar.getCpuPerc(); timer = sigar.getCpu(); } public static SigarTest gather(Sigar sigar) throws SigarException { SigarTest data = new SigarTest(); data.populate(sigar); return data; } public static void main(String[] args) throws Exception { System.out.println(System.getProperty("java.library.path")); Sigar sigar = new Sigar(); SigarTest cpuData = SigarTest.gather(sigar); XStream xstream = new XStream(); xstream.alias("CpuData", SigarTest.class); System.out.println(xstream.toXML(cpuData)); } }
Windows:将sigar.jar包放到classpath下,将sigar-amd64-winnt.dll放到环境变量java.library.path下。
Linux:将sigar.jar包放到classpath下,将libsigar-x86-linux.so放到环境变量java.library.path下。
获取网卡的流量
和网卡相关的统计数据主要有:网卡信息(ip地址、子网掩码、mac地址等)、网卡的吞吐量、流量等等。
当然了使用sigar也可以获得这些数据。
下面通过例子说明:
Java代码
1. package lab.sigar; 2. 3. import java.util.ArrayList; 4. import java.util.List; 5. 6. import org.hyperic.sigar.NetInterfaceConfig; 7. import org.hyperic.sigar.NetInterfaceStat; 8. import org.hyperic.sigar.Sigar; 9. import org.hyperic.sigar.SigarException; 10. 11. import com.thoughtworks.xstream.XStream; 12. 13. /** 14. * 网卡信息、接口数据、流量 15. * 16. * 使用Sigar获得网卡信息 17. * 18. */ 19. public class NetInterfaceData { 20. 21. private NetInterfaceConfig config; 22. private NetInterfaceStat stat; 23. private long rxbps; 24. private long txbps; 25. 26. public NetInterfaceData() {} 27. 28. public void populate(Sigar sigar, String name) 29. throws SigarException { 30. 31. config = sigar.getNetInterfaceConfig(name); 32. 33. try { 34. 35. long start = System.currentTimeMillis(); 36. NetInterfaceStat statStart = sigar.getNetInterfaceStat(name); 37. long rxBytesStart = statStart.getRxBytes(); 38. long txBytesStart = statStart.getTxBytes(); 39. Thread.sleep(1000); 40. long end = System.currentTimeMillis(); 41. NetInterfaceStat statEnd = sigar.getNetInterfaceStat(name); 42. long rxBytesEnd = statEnd.getRxBytes(); 43. long txBytesEnd = statEnd.getTxBytes(); 44. 45. rxbps = (rxBytesEnd - rxBytesStart)*8/(end-start)*1000; 46. txbps = (txBytesEnd - txBytesStart)*8/(end-start)*1000; 47. stat = sigar.getNetInterfaceStat(name); 48. } catch (SigarException e) { 49. 50. } catch (Exception e) { 51. 52. } 53. } 54. 55. public static NetInterfaceData gather(Sigar sigar, String name) 56. throws SigarException { 57. 58. NetInterfaceData data = new NetInterfaceData(); 59. data.populate(sigar, name); 60. return data; 61. } 62. 63. public NetInterfaceConfig getConfig() { 64. return config; 65. } 66. 67. public NetInterfaceStat getStat() { 68. return stat; 69. } 70. 71. 72. 73. public long getRxbps() { 74. return rxbps; 75. } 76. 77. public long getTxbps() { 78. return txbps; 79. } 80. 81. public static void main(String[] args) throws Exception { 82. Sigar sigar = new Sigar(); 83. String[] netIfs = sigar.getNetInterfaceList(); 84. List netIfList = new ArrayList(); 85. for ( String name:netIfs ) { 86. NetInterfaceData netIfData1 = NetInterfaceData.gather(sigar, name); 87. netIfList.add(netIfData1); 88. } 89. XStream xstream = new XStream(); 90. xstream.alias("NetInterfaceDatas", List.class); 91. xstream.alias("NetInterfaceData", NetInterfaceData.class); 92. System.out.println(xstream.toXML(netIfList)); 93. } 94. }
获取内存数据
内存的主要指标有:物理内存的大小、使用数、剩余数;交换内存的大小、使用数、剩余数;RAM的大小等等。
下面通过例子说明:
Java代码
1. package lab.sigar; 2. 3. import org.hyperic.sigar.Mem; 4. import org.hyperic.sigar.Sigar; 5. import org.hyperic.sigar.SigarException; 6. import org.hyperic.sigar.Swap; 7. 8. import com.thoughtworks.xstream.XStream; 9. 10. /** 11. * 内存数据 12. * 13. * 使用Sigar获得系统内存信息 14. * 15. */ 16. public class MemoryData { 17. private Mem mem; 18. private Swap swap; 19. 20. public MemoryData() { 21. } 22. 23. public void populate(Sigar sigar) throws SigarException { 24. mem = sigar.getMem(); 25. swap = sigar.getSwap(); 26. } 27. 28. public static MemoryData gather(Sigar sigar) throws SigarException { 29. MemoryData data = new MemoryData(); 30. data.populate(sigar); 31. return data; 32. } 33. 34. public static void main(String[] args) throws Exception { 35. Sigar sigar = new Sigar(); 36. MemoryData memData = MemoryData.gather(sigar); 37. XStream xstream = new XStream(); 38. xstream.alias("MemData", MemoryData.class); 39. System.out.println(xstream.toXML(memData)); 40. } 41. 42. }
输出:
Xml代码
1. <MemData> 2. <mem> 3. <total>1073102848</total> 4. <ram>1024</ram> 5. <used>932274176</used> 6. <free>140828672</free> 7. <actualUsed>932274176</actualUsed> 8. <actualFree>140828672</actualFree> 9. </mem> 10. <swap> 11. <total>2580328448</total> 12. <used>870432768</used> 13. <free>1709895680</free> 14. <pageIn>137691</pageIn> 15. <pageOut>19392</pageOut> 16. </swap> 17. </MemData>
发表评论
-
java H2数据库使用并实现增删改查功能
2014-07-26 11:17 1201原文:java H2数据库使用并实现增删改查功能 代码下载地 ... -
java定时任务类Timer和TimerTask用法详解
2014-07-25 10:25 645原文:java定时任务类Timer和TimerTask用法详 ... -
java swing调用webservice实现qq在线查询是否在线
2014-07-24 09:40 1066原文:java swing调用webservice实现qq在 ... -
java汉字转换为拼音
2014-07-23 10:04 836原文:java汉字转换为拼音 代码下载地址:http://w ... -
Java 扑克发牌算法实现
2014-07-22 09:39 1004原文:Java 扑克发牌算法实现 代码下载地址:http: ... -
java基数排序算法代码下载
2014-07-21 09:53 947原文:java基数排序算法代码下载 代码下载地址:http ... -
java桶式排序算法代码下载
2014-07-20 09:43 886原文:java桶式排序算法代码下载 代码下载地址:http ... -
java rmi服务器端客户端传输数据实例教程
2014-07-19 10:56 996原文:java rmi服务器端客户端传输数据实例教程 ja ... -
java冒泡排序Bubble Sort算法代码
2014-07-18 09:54 1120java冒泡排序Bubble Sort算法代码 下载代码地 ... -
分享java的Serializable功能
2014-07-17 10:24 1092可以将java对象序列化为文件,也可以将文件反序列化为jav ... -
java查看windows的磁盘空间大小信息
2014-07-16 10:12 896原文:java查看windows的磁盘空间大小信息 代码 ... -
java文件操作之移动文件到指定的目录
2014-07-15 10:23 1290原文:java文件操作之移动文件到指定的目录 代码下载地址 ... -
java修改文件为只读权限
2014-07-14 09:39 1270原文:java修改文件为只读权限 代码下载地址:http: ... -
java运行bat命令得到某个windows文件的创建时间
2014-07-13 09:25 866原文:java运行bat命令得到某个windows文件的创建 ... -
java文件操作之FileWriter用法,向文件尾插入内容
2014-07-12 10:28 1078原文:java文件操作之FileWriter用法,向文件尾插 ... -
java socket控制台版本聊天室程序源码下载
2014-07-11 10:03 960原文:java socket控制台版本聊天室程序源码下载 ... -
通过codehaus来实现json写入文件和读取文件成json对象
2014-07-10 10:00 837原文:通过codehaus来实现json写入文件和读取文件成 ... -
springmvc如何将form表单中的对象类型绑定
2014-07-09 10:14 1006原文:springmvc如何将form表单中的对象类型绑定 ... -
java qr二维条码生成器
2014-07-07 09:55 973原文:java qr二维条码生成器 代码下载地址:http ... -
java calendar循环某年某月的所有天数
2014-07-06 11:23 645原文:java calendar循环某年某月的所有天数 代 ...
相关推荐
开源工具包 SIGAR System Information Gatherer And Reporter 即 系统信息收集和报告 官方站点: http: support hyperic com display SIGAR Home;jsessionid A9705887A07D20BBAC9A96500BC60822 SIGAR 官方站点 ...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统监控库,由Hyperic公司开发,现已成为开源项目。这个第三方jar包`sigar.jar`提供了丰富的API,允许开发者便捷地获取各种操作系统级别的...
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API。 Sigar API 提供一个方便的接口来收集系统信息,如: ◆系统内存,页面交换,cpu,平均负载,运行时间,...
Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。 Sigar资料地址:https://support.hyperic.com/display/SIGAR/Home Sigar提供了一...
sigar全名是System Information Gatherer And Reporter,中文名是系统信息收集和报表工具。
sigar全名是System Information Gatherer And Reporter,Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件。它用来从许多平台收集系统和处理信息。这些平台包括:Linux, Windows, Solaris, AIX, HP-UX...
Sigar(System Information Gatherer AndReporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的。 可以收集的信息包括: 1, CPU信息,包括基本信息(vendor、model、mhz、cacheSize...
Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它提供了一种简单的方法来获取操作系统级别的信息,如CPU、内存、网络、磁盘和其他资源的状态。这个"sigar dll for win and linux...
System Information Gatherer And Reporter,系统信息收集和报表工具。 一个开源的工具,提供了跨平台的系统信息收集的API,通过它可以获取包括: 1.操作系统的信息,包括:dataModel、cpuEndian、name、version、...
标题中的“sigar-32位”指的是Sigar(System Information Gatherer and Reporter)的32位版本。Sigar是一个跨平台的系统信息收集库,它允许开发者通过一个统一的接口来获取各种操作系统上的系统信息,如进程列表、...
Sigar(System Information Gatherer and Reporter)是由Hyperic公司开发的一款强大的跨平台系统监控工具,它提供了丰富的API,能够方便地获取操作系统级别的信息,包括但不限于CPU使用率、内存状态、网络流量、磁盘...
Sigar(System Information Gatherer and Reporter)是一个跨平台的库,提供了丰富的接口来获取操作系统级别的信息,如CPU使用率、内存状态、网络统计等。这个项目旨在帮助开发者集成Sigar到他们的Spring Boot应用...
Hyperic Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集工具,它提供了一种统一的方式来获取多种操作系统平台上的系统状态信息,包括CPU使用率、内存使用、网络状态、磁盘I/O等。...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统信息收集工具,它提供了一种简单的方式来获取操作系统级别的信息,包括但不限于CPU使用率、内存使用情况、网络接口统计、进程状态等。...
Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它为开发者提供了一种简单的方式来获取操作系统及硬件的各种信息。Sigar库由Hypertable项目开发并维护,现在已成为Apache软件基金...
标题中的“sigar-1.6.4包含X86_X64的dll和so”指的是一款名为SIGAR(System Information Gatherer and Reporter)的工具包,版本为1.6.4,它包含了适用于X86和X64架构的动态链接库(dll)和共享对象文件(so)。...
Sigar(System Information Gatherer and Reporter)是一款强大的跨平台系统监控工具,由Hypertable组织开发,用于收集和报告操作系统级别的信息,如CPU使用率、内存状态、网络活动等。在Java环境中,通过sigar.jar...
Sigar(System Information Gatherer and Reporter)是一款跨平台的系统信息收集库,它提供了一种简单的方法来获取操作系统级别的信息,包括CPU、内存、磁盘、网络等。在这个项目中,我们将探讨如何利用Sigar API...
Sigar(System Information Gatherer and Reporter)是一款跨平台的开源库,它允许程序开发者轻松地获取操作系统和网络设备的各种信息,如CPU使用率、内存使用情况、网络接口统计、进程列表等。在"sigar读取系统信息...