Linux服务器排障常用命令:从CPU、内存、磁盘到端口和日志
整理 Linux 运维排障中最常用的命令,覆盖 CPU、内存、磁盘、网络端口、服务状态和日志定位。
服务器出问题时,最怕没有排查顺序。CPU 高、内存满、磁盘爆、端口不通、服务启动失败,看起来都很急,但只要按层次检查,通常都能快速缩小范围。
下面整理一组 Linux 运维排障常用命令。
查看系统负载
uptime
输出中的 load average 表示系统负载。要结合 CPU 核数判断。如果 4 核机器长期负载超过 4,就需要进一步分析。
也可以用:
top
或:
htop
观察 CPU、内存和进程排序。
查看 CPU 占用高的进程
ps aux --sort=-%cpu | head
如果某个进程长期占用 CPU,需要确认它是正常业务高峰,还是异常循环、攻击流量、脚本失控。
查看内存使用
free -h
Linux 会把一部分内存用于缓存,不能只看 free 很低就判断内存不足。更重要的是 available。
查看内存占用高的进程:
ps aux --sort=-%mem | head
查看磁盘空间
df -h
如果某个分区 100%,服务可能无法写日志、创建临时文件或写数据库。
找大目录:
du -h --max-depth=1 /var | sort -h
日志目录、上传目录、备份目录是常见增长点。
查看磁盘 IO
如果 CPU 不高但系统很卡,可能是 IO 压力。
iostat -x 1
如果没有该命令,可以安装 sysstat 包。
查看端口监听
ss -lntup
这个命令可以看到哪些端口在监听,以及对应进程。
例如 Web 服务访问不了时,先确认 80 或 443 是否真的在监听。
测试网络连通性
ping 8.8.8.8
测试 DNS:
dig www.zdyedu.cn
测试 HTTP:
curl -I https://www.zdyedu.cn
如果 curl -v,还能看到连接、TLS 和响应头细节。
查看服务状态
systemctl status nginx
如果服务启动失败,继续看日志:
journalctl -u nginx -n 100 --no-pager
很多时候错误原因已经写在日志里,比如配置语法错误、端口被占用、权限不足。
查看实时日志
tail -f /var/log/nginx/error.log
也可以结合 grep:
tail -f /var/log/messages | grep error
排障时不要只看应用日志,系统日志、服务日志和访问日志要结合起来看。
查看最近登录
last
查看失败登录:
lastb
如果看到大量陌生 IP 尝试登录,要检查 SSH 暴露和密码策略。
推荐排障顺序
遇到服务异常,可以按下面顺序:
- 先确认现象:访问慢、无法访问、报错还是间歇性失败。
- 看服务状态:
systemctl status。 - 看端口监听:
ss -lntup。 - 看资源:
top、free -h、df -h。 - 看日志:应用日志、服务日志、系统日志。
- 看最近变更:配置、代码、证书、DNS、CDN、防火墙。
总结
Linux 排障靠的是顺序和证据。命令只是工具,关键是知道每一步要验证什么假设。
把 CPU、内存、磁盘、端口、服务和日志这几个维度练熟,大多数基础运维问题都能独立定位。
