Linux 系统排查
CPU、内存性能分析
top
P CPU 使用率排序
M 内存使用率排序
m 内存与swap使用
top -c # 显示完整进程命令行
htop #增强版 top,需安装,支持鼠标操作
mpstat -P ALL 1 # 每秒刷新所有核心状态
sar -u 1 5 # 每秒刷新一次,5次CPU使用率
vmstat 1 # 每秒刷新一次 综合监控内存、Swap、进程队列和 I/O。
磁盘
iostat -xz 1 # 查看详细 I/O 统计
iostat 1 5
iotop -o # 仅显示活跃 I/O 进程
网络
iftop -i ens33 # 指定网卡监控
ss -tunlp # 显示所有 TCP/UDP 连接及进程
tcpdump -i eth0 port 80 # 抓取 HTTP 流量
进程
pidstat -d -p 1234 1 # 监控 PID 1234 的磁盘 I/O
排查组合命令
系统卡顿:
top → vmstat 1 → iostat 1 → pidstat 1 # 逐层定位瓶颈
网络延迟:
ping 8.8.8.8 → traceroute google.com → tcpdump -i eth0 # 逐步排查
进程异常:
strace -p <PID> → perf record -g -p <PID> # 分析系统调用和 CPU 热点
查找 CPU/内存占用 Top 进程:
ps aux --sort=-%cpu | head -10 # Top 10 CPU 进程
ps aux --sort=-%mem | head -10 # Top 10 内存进程
持续监控磁盘空间:
watch -n 1 'df -h' # 每秒刷新磁盘使用
lsof
lsof /var/log/syslog #查看文件被哪些进程占用
lsof +D /path/to/directory #查看目录被哪些进程占用
lsof -p <PID> #查看某个进程打开的文件
lsof -c nginx #按进程名过滤
lsof -u root #查看某个用户打开的文件
lsof -i #查看所有网络连接
lsof -i :80 #查看特定端口的占用情况
lsof -u root -a -i :22 #-a 参数组合多个条件
lsof +L1 #显示链接数为 0 的文件,通常是被删除但仍被进程占用的文件