Java应用系统监控方法简介
1. tsar
阿里巴巴开源的实时系统监控工具。其内部的sunfire有部分指标就是基于该工具每分钟采集一次来获取的。
github
监控项及数据来源一览
监控项 | 来源 | 细分项 |
---|---|---|
CPU | /proc/stat | user: 表示CPU执行用户进程的时间,通常期望用户空间CPU越高越好. |
sys: 表示CPU在内核运行时间,系统CPU占用率高,表明系统某部分存在瓶颈.通常值越低越好. | ||
wait: CPU在等待I/O操作完成所花费的时间.系统部应该花费大量时间来等待I/O操作,否则就说明I/O存在瓶颈. | ||
hirq: 系统处理硬中断所花费的时间百分比 | ||
sirq: 系统处理软中断所花费的时间百分比 | ||
util: CPU总使用的时间百分比 | ||
nice: 系统调整进程优先级所花费的时间百分比 | ||
steal: 被强制等待(involuntary wait)虚拟CPU的时间,此时hypervisor在为另一个虚拟处理器服务 | ||
ncpu: CPU的总个数 | ||
mem | /proc/meminfo | free: 空闲的物理内存的大小 |
used: 已经使用的内存大小 | ||
buff: buff使用的内存大小,buffer is something that has yet to be "written" to disk. | ||
cach: 操作系统会把经常访问的东西放在cache中加快执行速度,A cache is something that has been "read" from the disk and stored for later use | ||
total: 系统总的内存大小 | ||
util: 内存使用率 | ||
load | /proc/loadavg | load1: 一分钟的系统平均负载 |
load5: 五分钟的系统平均负载 | ||
load15:十五分钟的系统平均负载 | ||
runq: 在采样时刻,运行队列的任务的数目,与/proc/stat的procs_running表示相同意思 | ||
plit: 在采样时刻,系统中活跃的任务的个数(不包括运行已经结束的任务) | ||
traffic | /proc/net/dev | bytin: 入口流量byte/s |
bytout: 出口流量byte/s | ||
pktin: 入口pkt/s | ||
pktout: 出口pkt/s | ||
tcp | /proc/net/snmp | active:主动打开的tcp连接数目 |
pasive:被动打开的tcp连接数目 | ||
iseg: 收到的tcp报文数目 | ||
outseg:发出的tcp报文数目 | ||
EstRes:Number of resets that have occurred at ESTABLISHED | ||
AtmpFa:Number of failed connection attempts | ||
CurrEs:当前状态为ESTABLISHED的tcp连接数 | ||
retran:系统的重传率 | ||
udp | /proc/net/snmp | idgm: 收到的udp报文数目 |
odgm: 发送的udp报文数目 | ||
noport:udp协议层接收到目的地址或目的端口不存在的数据包 | ||
idmerr:udp层接收到的无效数据包的个数 | ||
io | /proc/diskstats | 指标较多,略 |
partition | /etc/mtab + statfs | bfree: 分区空闲的字节 |
bused: 分区使用中的字节 | ||
btotl: 分区总的大小 | ||
util: 分区使用率 | ||
ifree: 可用文件结点数 | ||
itotl: 文件结点总数 | ||
iutil: 文件结点使用率 | ||
pcsw | cswch: 进程切换次数 | |
proc: 新建的进程数 | ||
tcpx | /proc/net/netstat /proc/net/snmp | 多个指标,略 |
percpu ncpu | 同cpu模块 | |
pernic | 同traffic模块 | |
应用proc | /proc/pid/stat:获取进程的cpu信息 /proc/pid/status:获取进程的mem信息 /proc/pid/io:获取进程的读写IO信息 | user: 某个进程用户态cpu消耗 |
sys: 某个进程系统态cpu消耗 | ||
total:某个进程总的cpu消耗 | ||
mem: 某个进程的内存消耗百分比 | ||
RSS: 某个进程的虚拟内存消耗,这是驻留在物理内存的一部分.它没有交换到硬盘.它包括代码,数据和栈 | ||
read: 进程io读字节 | ||
write:进程的io写字节 | ||
nginx | nginx采集模块 |
2. JAVA应用监控 —— metric
注册监听点及监控周期,进行被监控指标的输出。
引用及使用方式:系统监控-Metric
3. 企业级集群监控 —— open-falcon
作者:五岳
出处:http://www.cnblogs.com/wuyuegb2312
对于标题未标注为“转载”的文章均为原创,其版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。