最近工作做一个监控项目。
总的CPU 利用率
计算CPU使用率可以用 /proc/stat
文件中的信息。这个文件包括了自机器启动以来的所有CPU活动信息。
间单位为USER_HZ或Jiffies(通常为百分之一秒)
第一行表示下面CPUN的汇总信息
- user
用户态的CPU时间(单位:jiffies) ,不包含 nice值为负进程。 - nice
nice值为负的进程所占用的CPU时间。 - system
- idle
除IO等待时间以外其它等待时间 - iowait
IO等待时间 - irq
硬中断时间 - softirq
软中断时间 - stealstolen
- guest
total = user + nice + system + idle + iowait + irq + softirq + stealstolen + guest
占用率计算方法
- 采样2个足够短的时间间隔的CPU快照。
- 计算总的CPU时间片
把第一次的所有CPU使用情况求和,得到 S1
把第二次的所有CPU使用情况求和,得到S2 - 计算空闲的idle
idle=第二次的第四列 - 第一次的第四列 - 计算CPU使用率
CPU utilization = (total-idle)/totle
总的内存使用率
进程的CPU占用率
/proc/<pid>/stat 该文件包含了某一进程的所有活动信息,
- pid
- utime
- stime
- cutime
- cstime
进程CPU 使用的
- ps
- top
进程的内存使用
mysql
- 使用内存
- 数据库的连接个数
参考资料
1、
2、http://www.blogjava.net/fjzag/articles/317773.html
网友评论