说实话,Linux系统监控这事儿真是让人又爱又恨——爱的是它提供了丰富的工具和接口,恨的是这些工具多到让人眼花缭乱。记得有次我们的服务器半夜突然卡死,查了半天才发现是某个进程内存泄漏把32G内存吃光了。从那以后我就养成了定期监控系统资源的习惯,毕竟等到报警响起时,问题往往已经严重到影响业务了。
基础监控三板斧:top、vmstat和iostat
对于日常监控,我最常用的就是这仨工具。top命令可以实时查看CPU和内存使用情况,特别是那个load average指标特别实用——如果15分钟负载持续高于CPU核心数,那就得警惕了。vmstat则能显示进程、内存、swap、磁盘和CPU活动的详细信息,我习惯用vmstat 1来每秒刷新一次。而iostat专门盯着磁盘I/O,有时候系统卡顿不是因为CPU或内存,而是磁盘读写跟不上。
进阶监控:sar和nmon
如果需要更详细的历史数据,那就得请出sar了。这个工具默认每10分钟采集一次系统数据,可以回看过去一周的性能趋势。我特别喜欢用sar -u查看CPU使用率,用sar -r分析内存变化。nmon则是交互式监控的神器,一个界面就能看到CPU、内存、磁盘、网络等所有关键指标,特别适合实时故障排查。
自定义监控脚本
有时候标准工具还不够用,我就自己写监控脚本。比如用df -h监控磁盘空间,用netstat -ant | wc -l统计TCP连接数,再用crontab定时执行并把结果发到监控平台。这种自定义监控的好处是特别有针对性,可以直接关注业务最关心的指标。
其实监控最重要的不是工具多高级,而是要坚持定期查看和分析。我现在的习惯是每天早上第一件事就是看前一天的监控报表,发现异常趋势就立即排查。毕竟在运维领域,预防总是比救火来得轻松,你说是不是?

评论