系统资源使用情况的分析,往往是从日志入手。但日志文件浩如烟海,从哪里看、怎么看、看完怎么用,确实是个技术活。下面把整套流程拆开揉碎,一步步说清楚。

1. 先问自己:到底要看什么资源?
别急着翻日志,先明确监控对象——CPU、内存、磁盘I/O、网络带宽,还是全都要?目标不同,后续的工具和参数也会跟着变。比如,只关心磁盘读写延迟,跟要排查网络丢包,完全是两套思路。
2. 选对工具,事半功倍
操作系统不同,趁手的兵器也不同。但核心原则是:能用系统自带就别折腾第三方,能实时看就别事后翻文件。
- Linux 环境:
syslog/journalctl管系统日志,top/htop看CPU和内存,vmstat/iostat管磁盘和虚拟内存,netstat/iftop抓网络流量。 - Windows 环境:事件查看器(Event Viewer)记录系统事件,
Performance Monitor(perfmon) 做性能计数器,Resource Monitor实时查看资源占用——这些都是内置的,够用。
3. 把日志记录配置好,别漏关键信息
工具选好了,还得调对日志级别和频率。拿 Linux 来说,/etc/rsyslog.conf 或 /etc/syslog-ng/syslog-ng.conf 这两份文件决定了哪些信息会被记录下来。平时可以调低一些(比如只记录警告和错误),但排查问题时要临时打开 debug 级别,否则关键线索会被淹没。
4. 动手收集数据——几行命令的事
有了配置,接下来就是跑命令、抓数据。不同资源各有专属命令:
- CPU 使用率:
top或htop实时刷新,看哪个进程占得最多。 - 内存使用情况:
free -m看总量和剩余,vmstat还能看到 swap 和页面交换。 - 磁盘 I/O:
iostat告诉你读写速度和处理时间,vmstat的 b 列可以判断是否有磁盘瓶颈。 - 网络带宽:
netstat看连接状态,iftop实时显示流量分布,一目了然。
5. 数据到手,怎么分析才不浪费?
光收集不行,背后的逻辑才是关键。你可以用文本编辑器慢慢翻,也可以用 ELK Stack、Splunk 这类工具做自动化分析,或者干脆自己写个脚本。说说几个常见场景的分析思路:
分析示例:
- CPU:如果使用率持续超过80%,就要揪出是哪个进程在“吃”CPU,是业务高峰还是死循环?
- 内存:接近物理内存容量时,检查是否被某个进程独占,还是产生了内存泄漏。
- 磁盘 I/O:读写速度慢、I/O 等待时间居高不下,八成是磁盘老了或者队列太深。
- 网络:流量异常暴涨或者带宽打满,可能是被攻击,也可能是某个服务在疯狂重试。
6. 别等出事了才发现——设置警报
人工盯日志不是长久之计。根据分析结果,给每个资源设一个阈值(比如 CPU 90% 持续5分钟),当日志数据触发阈值时,自动发邮件、钉钉或者信息。这样你就不用天天盯着屏幕看了。
7. 定期复盘,持续优化
日志分析不是一次性活儿。每两周或每月翻一下历史数据,看看哪些告警反复出现、哪些资源总是被推高,然后调整监控策略和系统配置。比如加一条内存清理脚本,或者把某些定时任务挪到低谷时段——只有不断迭代,系统才能真正跑得稳。
按这套流程走一遍,你手里的日志就不再是枯燥的文本,而是系统健康的晴雨表。能提前发现问题,比事后补救要省心得多。
