程序开发想法: Linux上的两个系统管理程序
发表者: kenjoy 2006年11月02日 #229
http://cn.iventor.org/blog/kenjoy/229.html
诊断系统负载是一个很关键的任务, 有时系统上应用程序突然失灵, 我们需要弄清楚是怎么回事. 通常的监视工具不足以彻底解决问题. 如top命令仅能分析CPU的利用率. vmstat和isostat仅能做统计报告, 但都不能找到问题所在. strace很不错, 但不方便, (提示: 如果你的系统缺省没有安装strace工具, 可以从rpm.pbone.net搜索你系统的strace包, 如果你使用fedora core 5, 从这里下载). ok, 继续, strace从内核层(kernel-level)来跟踪系统调用和信号, 它能够精确显示单一进程资源占用情况, 但不能够显示每个进程访问磁盘的比例. ok, 两个系统程序开发想法:
程序一: psnettop
我们需要整合一下top和iftop (提示: iftop工具fc5本地下载) 命令的功能, 因此我们将能够查看每一个进程的网络使用情况, 而不是每个端口或接口. 这样一来, 我们能够快速诊断是否是BitOrrent或者Firefox占用了大量的网络带宽, 网络管理员也将能够远程查看用户系统的网络使用情况, 以便查出具体问题所在.
在windows世界里, NetLimiter能够限制每一个进程所占用的网络带宽, 自动实时显示每一个进程的网络带宽占用情况.
程序二: disktop
我们也需要一个top风格的磁盘监视工具, 它能够显示每一个应用程序的磁盘利用情况. 不仅是磁盘的访问, 而且能实时显示主要的页面错误(入交换)和磁盘读/写数, 磁盘缓冲利用情况. 第一个纵栏显示页面错误, 第二个显示磁盘块的读数, 第三个显示磁盘块写数. disktop将能报告磁盘的发生了什么情况, 这样我们才能忽略缓冲. 小结一下, 系统管理员能够确认应用程序:
1. 引起内存过度消耗.
2. 超额磁盘交换引起的磁盘带宽吃紧.
3. 直接导入文件到磁盘而不是到缓冲中.
strace不能做到这些, 因为它不能显示哪一个进程在进行实际磁盘操作, 仅能监视单一的进程.
另外, 这两个程序如果能集成到图形管理工具中就更好了. 比如说:
1. 集成到KSysGuard
这样我们将很方便查看, 省去使用命令行的麻烦.
2. 结合sar
结合sar定期监视系统, 这样我们能通过与程序员和测试人员共同分享日志来快速诊断过去发生的问题.
备注: 创新者(http://cn.iventor.org)是一个致力于推动开放协作与分享的组织. 我们提供协作开发项目, 开放项目寄存, 博客, 邮列, 论坛, IRC等. 另外我们博客邀请您的参与. 欢迎问题, 建议和参与. 我们的QQ群: 31361877
参考:
1. Two system management applications we sorely need in Linux land.
2. Pbone RPM Search
3. strace utility and manual
4. iftop utility and manual
5. sar utility and manual
|
|