Linux 系统性能监控是运维工程师的重要技能,需要掌握多种工具来诊断系统瓶颈。
CPU 监控:
- top/htop:实时查看 CPU 使用率、进程信息
- vmstat:报告虚拟内存统计信息,如 vmstat 1 5(每秒更新一次,共5次)
- mpstat:显示各个 CPU 核心的使用情况,如 mpstat -P ALL 1
- sar:系统活动报告,如 sar -u 1 10(每秒采集一次,共10次)
内存监控:
- free:显示内存使用情况,free -h 以人类可读格式显示
- vmstat:查看内存交换、缓存等信息
- ps aux:查看进程的内存占用(VSZ、RSS)
- pmap:查看进程的内存映射
磁盘监控:
- df:查看磁盘空间使用情况,df -h 以人类可读格式显示
- du:查看目录或文件的大小,du -sh directory
- iostat:查看磁盘 I/O 统计信息,如 iostat -x 1
- iotop:实时查看磁盘 I/O 使用情况(需要 root 权限)
网络监控:
- ifconfig/ip:查看网络接口配置
- netstat/ss:查看网络连接和端口监听,如 netstat -tulnp 或 ss -tulnp
- nethogs:按进程查看网络带宽使用
- tcpdump:抓包分析网络流量,如 tcpdump -i eth0 port 80
日志分析:
- /var/log/messages:系统主日志
- /var/log/syslog:系统日志(Debian/Ubuntu)
- /var/log/dmesg:内核启动日志
- journalctl:systemd 日志查看工具,如 journalctl -f(实时查看)
综合监控工具:
- dstat:集成了 vmstat、iostat、netstat 等功能
- glances:基于 Web 的系统监控工具
- prometheus + grafana:企业级监控解决方案
性能优化建议:
- CPU:优化算法、减少不必要的计算、使用多进程/多线程
- 内存:减少内存泄漏、优化数据结构、使用缓存
- 磁盘:使用 SSD、优化文件系统、减少 I/O 操作
- 网络:使用 CDN、优化 TCP 参数、减少网络请求