sigar

  • 特点
    • 跨平台的信息系统收集API
    • 可以被多种语言调用(java,c/c++,.NET,perl,python等)
  • 可采取信息

    • CPU信息,包括基本信息(vendor、model、mhz、cacheSize)和统计信息(user、sys、idle、nice、wait)
    • 文件系统信息:包括Filesystem、Size、Used、Avail、Use%、Type
    • 内存信息:物理内存和交换内存的总数、使用数、剩余数;RAM的大小
    • SWAP信息
    • 网络信息:包括网络接口信息和网络路由信息
    • 进程信息:包括每个进程的内存、CPU占用数、状态、参数、句柄
    • I/O信息:包括IO的状态,读写大小等
    • 服务状态信息
    • 系统信息:包括操作系统版本,系统资源限制情况,系统运行时间以及负载,JAVA的版本信息等
  • cpu信息

 Sigar sigar = new Sigar();
 CpuInfo info = sigar.getCpuInfoList()[0];//获取cpu硬件信息
 CpuPerc cpuPerc = sigar.getCpuPerc();//获取总cpu运行信息
 cpuPerc.getUser();//us 级别占用比例
 cpuPerc.getSys();// sy(kernel)级别占用比例
 cpuPerc.getWait();// I/O等待占用比例
 cpuPerc.getCombined();//us+sy+ni+wa比例
 CpuPerc[] result = sigar.getCpuPercList();//获取每个CPU信息
  • Memory 信息
    • 内存的有效使用 = 有效使用buffers+cache值
    • 内存使用量 = 有效使用(buffers+cache)+无用的(buffers+cache)
Mem mem = sigar.getMem();
mem.getUsed();//获取已经使用率
mem.getTotal();//获取内存总值
mem.getUsedPercent();//获取有效使用率,<used/total值
  • SWAP 分区信息获取
Swap swap = sigar.getSwap();
swap.getTotal();
swap.getUsed();
swap.getFree();
swap.getPageIn();//页入数
swap.getPageOut();//页出数
  • 系统负载信息
    • 采集系统近1min,5min,15分钟系统负载值,理想值为cpu的个数
double [] load = sigar.getLoadAverage(); 

数据收集

定时任务进行数据收集
用户交互线程控制报告形成

采集绘制成图像

HighCharts
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐