ShellLinux性能
先看资源,再追进程
收到“系统慢”的告警时,先用 htop 看 CPU、内存和 load,再用 iostat -xz 1 观察磁盘设备的 util、await 和队列。高 load 不一定等于 CPU 满,也可能是不可中断的 I/O 等待。
htop
iostat -xz 1
free -h
lsof -p <pid>lsof 能确认进程持有的文件和 socket,排查磁盘空间“删了不释放”时特别有用:已删除但仍被进程打开的文件会显示为 (deleted)。
需要时再用 strace
strace -p PID 可观察系统调用,适合确认进程是不是卡在网络、文件或锁相关调用上。线上短暂 attach 可以,但输出量很大,避免长时间追踪高频进程。
strace -f -p 1234 -e trace=network,file
# 观察 connect、recvfrom、openat 等调用- 先记录时间窗口、负载和现象,再采样;没有基线的命令输出很难解释。
- 高 iowait 时检查磁盘延迟与日志写入,不要急着只扩 CPU。
- 对生产进程运行 strace 前确认权限和开销,并在观察到足够证据后及时退出。
容器环境中还要对照 cgroup 的 CPU、内存和 I/O 限制;宿主机空闲不代表容器没有被限流。
排查结束后把关键指标、命令输出和结论写进事故记录,下一次能更快区分容量问题和代码问题。