Linux 服务器排障常用命令清单:CPU、内存、磁盘、端口一把查
【摘要】 服务器一出问题,最怕的是不知道从哪查起。下面按“先看整体、再定位进程、最后查日志”的顺序,整理了一套我自己常用的排障命令,基本覆盖八成的日常问题。 一、先看整体负载uptime:看 1、5、15 分钟的平均负载。负载长期高于 CPU 核数,说明机器忙不过来。top / htop:实时查看 CPU、内存占用最高的进程。在 top 里按 P 按 CPU 排序,按 M 按内存排序。nproc:查看...
服务器一出问题,最怕的是不知道从哪查起。下面按“先看整体、再定位进程、最后查日志”的顺序,整理了一套我自己常用的排障命令,基本覆盖八成的日常问题。
一、先看整体负载
uptime:看 1、5、15 分钟的平均负载。负载长期高于 CPU 核数,说明机器忙不过来。top/htop:实时查看 CPU、内存占用最高的进程。在 top 里按P按 CPU 排序,按M按内存排序。nproc:查看 CPU 核数,用来和负载对比。
二、内存够不够
free -h:重点看available一列,它才是真正还能用的内存。vmstat 1 5:每秒刷新一次,si、so不为 0 说明在频繁用交换分区,内存吃紧。dmesg -T | grep -i oom:查看有没有进程被 OOM Killer 杀掉。
三、磁盘满没满
df -h:查看各分区使用率,超过 90% 就要清理了。df -i:查看 inode 使用率。小文件太多时,空间没满也会写不进去。du -sh /var/* | sort -rh | head:找出目录里最占空间的子目录。lsof +L1:找出已删除但仍被进程占用的文件,这类文件不释放空间,常见于日志文件。
四、端口和网络
ss -lntp:查看正在监听的 TCP 端口和对应进程,比 netstat 更快。ss -s:连接数汇总,排查连接数暴涨很有用。curl -I http://127.0.0.1:端口:本机先测服务通不通,区分是服务问题还是网络/防火墙问题。ping、traceroute、mtr:排查外网连通性和丢包位置。
五、定位到具体进程
ps aux --sort=-%cpu | head:CPU 占用前几名。ps aux --sort=-%mem | head:内存占用前几名。lsof -p PID:查看某个进程打开了哪些文件和连接。strace -p PID:查看进程卡在哪个系统调用上(谨慎在生产环境长时间使用)。
六、最后看日志
journalctl -u 服务名 -n 100 --no-pager:查看 systemd 服务最近 100 行日志。journalctl -p err -b:只看本次开机以来的错误级别日志。tail -f /var/log/xxx.log:实时跟踪日志输出。grep -i error 日志文件 | tail:快速找最近的报错。
小结
排障的顺序可以记成一句话:先整体(uptime、top),再资源(free、df、ss),然后进程(ps、lsof),最后日志(journalctl)。按这个顺序走一遍,大多数问题都能很快找到方向。在华为云 ECS 上同样适用,配合云监控的历史曲线一起看效果更好。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)