Nmon是Linux
系统下一个简单但强大的性能监控工具。在新年的头一个月里,我花时间阅读了nmon
的代码,总结了如何实现一个简单的Linux
性能监控工具:
(1)获取性能数据。/proc
文件系统是个宝库,你想要的信息几乎都可以从这里得到:
a)CPU
利用率:/proc/stat
;
b)内存利用率:/proc/meminfo
和/proc/vmstat
;
c)磁盘利用率:/proc/diskstats
;
d)网络利用率:/proc/net/dev
;
e)单独进程的状态:/proc/[pid]
目录;
f)其余感兴趣的信息:比如关于系统的负载状况,可以读取/proc/loadavg
。
(2)理解和解析数据。参考man
手册,了解每一项数据的含义,必要时候可以阅读内核代码和学习相关的硬件知识。
(3)展示数据。Nmon
使用的是“原始”的ncurses
库,当然也可以使用“现代化”的GUI
工具以达到更好的用户体验。
如果想进一步了解nmon
内部的原理,也可参考我写的这本剖析nmon
代码的小册子。