相关参照博客:

http://liningjustsoso.iteye.com/blog/1254584

http://blog.csdn.net/aoxida/article/category/1259086

jar包

我这里是一个使用timer+sigar的例子,之后用quartz做了后台任务修改,可以看另外那篇文章

实现功能是每秒查一下网卡的流量

package com.dsideal.Util;

import java.util.Timer;
import java.util.TimerTask; import org.hyperic.sigar.NetInterfaceConfig;
import org.hyperic.sigar.NetInterfaceStat;
import org.hyperic.sigar.Sigar;
import org.hyperic.sigar.SigarException;
import org.hyperic.sigar.SigarNotImplementedException; import com.jfinal.plugin.memcached.MemcachedKit;
import com.jfinal.plugin.memcached.MemcachedPlugin; public class SigarTest extends TimerTask{
public static void main(String[] args) throws Exception { Timer timer = new Timer();
timer.schedule(new SigarTest(), 1000, 1000); } public static int getCpuCount() throws SigarException {
Sigar sigar = new Sigar();
try {
return sigar.getCpuInfoList().length;
} finally {
sigar.close();
}
} private static long dfRxBytes = 0;
private static long dfTxBytes = 0;
public static long dfRxBytesMb = 0; //每秒接收的总字节数
public static long dfTxBytesMb = 0; //每秒发送的总字节数
public void testNetIfList() {
try {
MemcachedPlugin memcachedPlugin = new MemcachedPlugin("10.10.3.151:11211");
memcachedPlugin.start();
Sigar sigar = new Sigar();
String ifNames[] = sigar.getNetInterfaceList();
for (int i = 0; i < ifNames.length; i++) {
String name = ifNames[i];
if(name.equals("eth6")) {
NetInterfaceConfig ifconfig = sigar.getNetInterfaceConfig(name);
// print("\nname(网络设备名) = " + name);// 网络设备名
// print("Address(IP地址) = " + ifconfig.getAddress());// IP地址
// print("Netmask(子网掩码) = " + ifconfig.getNetmask());// 子网掩码
if ((ifconfig.getFlags() & 1L) <= 0L) {
// print("!IFF_UP...skipping getNetInterfaceStat");
continue;
}
try {
NetInterfaceStat ifstat = sigar.getNetInterfaceStat(name);
// print("RxPackets(接收的总包裹数) = " + ifstat.getRxPackets());// 接收的总包裹数
// print("TxPackets(发送的总包裹数) = " + ifstat.getTxPackets());// 发送的总包裹数
if (dfRxBytes == 0) {
dfRxBytes = ifstat.getRxBytes();
}
// print("RxBytes(接收到的总字节数) = " + ifstat.getRxBytes());// 接收到的总字节数
// print("-------------------------------------------");
// print("RxBytes(每秒接收到的总字节数) = " + (ifstat.getRxBytes() - dfRxBytes) + "B");// 接收到的总字节数
// print("RxBytes(每秒接收到的总字节数) = " + ((ifstat.getRxBytes() - dfRxBytes) /1024) + "KB");// 接收到的总字节数
dfRxBytesMb = (ifstat.getRxBytes() - dfRxBytes) /1024 /1024;
print("RxBytes(每秒接收到的总字节数) = " + dfRxBytesMb + "MB");// 接收到的总字节数
// print("-------------------------------------------");
dfRxBytes = ifstat.getRxBytes();
// print("TxBytes(发送的总字节数) = " + ifstat.getTxBytes());// 发送的总字节数
// print("-------------------------------------------");
// print("TxBytes(每秒发送的总字节数) = " + (ifstat.getTxBytes() - dfTxBytes) + "B");// 发送的总字节数
// print("TxBytes(每秒发送的总字节数) = " + ((ifstat.getTxBytes() - dfTxBytes) /1024) + "KB");// 发送的总字节数
if (dfTxBytes != 0) {
dfTxBytesMb = (ifstat.getTxBytes() - dfTxBytes) /1024 /1024 ;
MemcachedKit.set("dfTxBytesMb", 0, dfTxBytesMb);
// System.out.println("dfTxBytesMb="+MemcachedKit.get("dfTxBytesMb"));
}
print("TxBytes(每秒发送的总字节数) = " + dfTxBytesMb + "MB");// 发送的总字节数
// print("-------------------------------------------");
// if (((ifstat.getTxBytes() - dfTxBytes) /1024 /1024) <= 8) {
// this.printA();
// } else {
// this.printB();
// }
dfTxBytes = ifstat.getTxBytes();
// print("RxErrors(接收到的错误包数) = " + ifstat.getRxErrors());// 接收到的错误包数
// print("TxErrors(发送数据包时的错误数) = " + ifstat.getTxErrors());// 发送数据包时的错误数
// print("RxDropped(接收时丢弃的包数) = " + ifstat.getRxDropped());// 接收时丢弃的包数
// print("TxDropped(发送时丢弃的包数) = " + ifstat.getTxDropped());// 发送时丢弃的包数
} catch (SigarNotImplementedException e) {
print(e.getMessage());
} catch (SigarException e) {
print(e.getMessage());
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (Exception e) {
// TODO: handle exception
} } void print(String msg) {
System.out.println(msg);
} @Override
public void run() {
SigarTest s =new SigarTest();
s.testNetIfList(); } public static void printA() {
System.out.println("AAAAAAAAAAAAAAAAAAAAAAAAAAAA");
} public static void printB() {
System.out.println("BBBBBBBBBBBBBBBBBBBBBBBBBBBB");
} }

sigar监控的更多相关文章

  1. sigar 监控服务器硬件信息

    转载 http://www.cnblogs.com/jifeng/archive/2012/05/16/2503519.html 通过使用第三方开源jar包sigar.jar我们可以获得本地的信息 1 ...

  2. ava如何实现系统监控、系统信息收集、sigar开源API的学习(转)

    ava如何实现系统监控.系统信息收集.sigar开源API的学习(转) 转自:http://liningjustsoso.iteye.com/blog/1254584 首先给大家介绍一个开源工具Sig ...

  3. Java系统监控(淘汰sigar)

    Sigar是Hyperic-hq产品的基础包,是Hyperic HQ主要的数据收集组件.它用来从许多平台收集系统和处理信息. 这些平台包括:Linux, Windows, Solaris, AIX, ...

  4. sigar获取Windows系统的硬件信息进行JAVA后台系统资源监控

    windows下,将sigar-amd64-winnt.dll复制到jdk的bin目录下或者拷贝到WEB-INF/lib下 linux下,将libsigar-amd64-linux.so拷贝到jdk的 ...

  5. java sigar 系统监控

    <dependency> <groupId>org</groupId> <artifactId>sigar</artifactId> < ...

  6. Sigar使用

    Sigar(System Information Gatherer And Reporter),是一个开源的工具,提供了跨平台的系统信息收集的API,核心由C语言实现的.项目中使用Sigar进行服务器 ...

  7. Netty 编解码技术 数据通信和心跳监控案例

    Netty 编解码技术 数据通信和心跳监控案例 多台服务器之间在进行跨进程服务调用时,需要使用特定的编解码技术,对需要进行网络传输的对象做编码和解码操作,以便完成远程调用.Netty提供了完善,易扩展 ...

  8. 服务器资源监控插件(jmeter)

    零.引言 我们对被测应用进行性能测试时,除了关注吞吐量.响应时间等应用自身的表现外,对应用运行所涉及的服务器资源的使用情况,也是非常重要的方面,通过 实时监控,可以准确的把握不同测试场景下服务器资源消 ...

  9. WebLogic使用总结(五)——Web项目使用Sigar在WebLogic服务器部署遇到的问题

    今天在WebLogic 12c服务器上部署Web项目时,碰到了一个问题.项目中使用到了"Sigar.jar"监控Window平台下的cpu使用率.内存使用率和硬盘信息,sigar. ...

随机推荐

  1. [状压dp]HDOJ3182 Hamburger Magi

    题意 大致是: 有n个汉堡 m块钱  (n<=15) 然后分别给n个汉堡的能量 再分别给n个汉堡所需的花费 然后下面n行 第i行有x个汉堡要在i汉堡之前吃 然后给出这x个汉堡的编号 输出 能获得 ...

  2. Asp.Net中的三种分页方式

    Asp.Net中的三种分页方式 通常分页有3种方法,分别是asp.net自带的数据显示空间如GridView等自带的分页,第三方分页控件如aspnetpager,存储过程分页等. 第一种:使用Grid ...

  3. Spring AOP实现方式四之注入式AspectJ切面【附源码】

    现在我们要讲的是第四种AOP实现之注入式AspectJ切面 通过简单的配置就可以实现AOP了. 源码结构: 1.首先我们新建一个接口,love 谈恋爱接口. package com.spring.ao ...

  4. 令人头疼的clientTop、scrollTop、offsetTop

    1.网络上流传的图片 2.稍微容易理解点的示意图 参考链接:http://blog.csdn.net/lidiansheng/article/details/7950751 3.言简意赅的示意图 4. ...

  5. 【HDOJ】4267 A Simple Problem with Integers

    树状数组.Easy. /* 4267 */ #include <iostream> #include <string> #include <map> #includ ...

  6. WPF——文本随滚动条改变而改变

    一.造一个窗体,拖进一个文本框TextBox和滚动条Slider 二.让文本框的内容随滚动条的滚动而改变,即文本框绑定到滚动条上 三.实现效果

  7. [ECNU 1624] 求交集多边形面积

    求交集多边形面积 Time Limit:1000MS Memory Limit:30000KB Total Submit:98 Accepted:42 Description 在平面上有两给定的凸多边 ...

  8. apache开源项目--HydraBase

    Facebook 在官方博客上宣布推出HBase数据库的升级版——HydraBase, Facebook是HBase的重度用户,Facebook的HBase数据库系统存储着Facebook的很多关键业 ...

  9. UVA 540 Team Queue

    思路:使用优先队列,按队伍出现的时刻和自身出现的时刻定义优先级,同时记录此时刻队列里是否有自己队伍的人,一开始没注意,wa了两发. #include<map> #include<qu ...

  10. [Tommas] dateadd() 函数用法

    DATEADD() 函数在日期中添加或减去指定的时间间隔. 语法 DATEADD(datepart,number,date) date 参数是合法的日期表达式.number 是您希望添加的间隔数:对于 ...