LinkedIn SRE学院:Linux系统监控命令行工具详解
前言
在Site Reliability Engineering(SRE)实践中,系统监控是确保服务可靠性的基础环节。Linux系统提供了一系列强大的命令行工具,可以帮助SRE工程师快速诊断系统性能问题。本文将深入解析这些工具的使用方法和应用场景。
进程监控工具
ps与top命令
ps
(process status)和top
是Linux系统中最基础的进程监控工具:
-
ps命令:提供系统当前进程的快照视图
ps -p <pid>
:查看指定PID的进程信息ps -u <user>
:查看指定用户的进程ps -aux
:显示所有用户的完整格式进程信息
-
top命令:提供实时动态的进程监控视图
- 默认按CPU使用率排序
- 交互模式下可切换排序字段(如内存使用)
- 显示系统负载、运行进程数等汇总信息
进阶工具htop:
- 彩色界面显示
- 支持鼠标操作
- 直观的树状进程视图
- 可直接杀死进程
网络状态分析工具
ss命令
作为netstat的现代替代品,ss
(socket statistics)提供了更快的网络连接分析:
ss -tulnp
常用参数组合:
-t
:TCP连接-u
:UDP连接-l
:仅监听端口-n
:显示数字地址(不解析域名)-p
:显示关联进程
tcpdump深度解析
网络包分析利器tcpdump
的进阶用法:
tcpdump -i eth0 -nn 'tcp port 80 and host 192.168.1.1'
实用过滤表达式:
- 协议过滤:
tcp/udp/icmp
- 端口范围:
portrange 8000-8080
- 包大小:
greater 1024
- 复杂逻辑:
and/or/not
输出解读技巧:
- 时间戳格式解析
- 序列号确认机制
- TCP标志位含义
- 包长度与窗口大小
系统资源监控
内存分析工具
free
命令的最佳实践:
free -h -s 5
关键指标解读:
available
vsfree
内存的区别- buffers/cache的计算逻辑
- swap使用率的警戒值
磁盘空间监控
df
命令的实用技巧:
df -hT -x tmpfs
重要参数:
-i
:inode使用情况(小文件场景特别重要)--total
:显示汇总信息-t
:按文件系统类型过滤
高级监控工具
sar系统活动报告
sar
是系统性能历史数据分析的多功能工具:
sar -u -r -n DEV -f /var/log/sa/sa15
常用数据收集:
- CPU使用率(-u)
- 内存利用率(-r)
- 网络流量(-n DEV)
- 磁盘I/O(-d)
iftop带宽监控
实时网络流量可视化工具:
iftop -nN -i eth0
显示字段解析:
- 峰值流量与平均流量
- 累计传输数据量
- 双向流量比例
实战应用场景
性能瓶颈诊断流程
-
CPU问题:
top
查看CPU负载ps -eo pcpu,pid,user,args | sort -k1 -nr
定位高CPU进程perf
进行深入分析
-
内存问题:
free
查看内存使用vmstat 1
观察内存换页情况pmap -x <pid>
分析进程内存分布
-
IO问题:
iostat -x 1
查看磁盘IOiotop
定位高IO进程lsof
查看文件打开情况
总结
掌握这些命令行工具是SRE工程师的基本功。在实际工作中,建议:
- 建立常用命令的alias快捷方式
- 编写脚本定期收集关键指标
- 结合监控系统进行自动化报警
- 定期review历史性能数据
通过熟练使用这些工具,可以快速定位系统性能瓶颈,提高故障诊断效率。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考