如何实现一个Linux性能监控工具

NmonLinux系统下一个简单但强大的性能监控工具。在新年的头一个月里,我花时间阅读了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代码的小册子