Linux 服务器排错常用的五个命令

举报
yd_211758112 发表于 2026/10/24 11:43:08 2026/10/24
【摘要】 本文整理 Linux 服务器排错最常用的五个命令:top/htop 定位 CPU/内存瓶颈,netstat/ss 排查网络连接与端口占用,journalctl/dmesg 查看服务与内核日志,lsof 找回被删除仍占用的文件句柄,strace 跟踪系统调用定位根因。适合运维与开发人员在生产排障时快速上手。

Linux 服务器排错常用的五个命令

生产环境中 Linux 服务器一旦异常,定位效率往往决定了业务恢复的速度。下面整理五个在排错时最常派上用场的命令,配合实例说明它们各自适用的场景。

1. top / htop – 定位资源瓶颈

服务器变慢的第一步通常是看 CPU 和内存。top 按 P 可按 CPU 使用率排序,按 M 按内存排序;RES 列反映真实物理内存占用。对于需要更直观排障的场景,htop 的彩色树形进程视图能直接看出父子进程的资源分配关系。如果发现某进程长期占满单核,可结合 top -p <pid> 持续观察。

2. netstat / ss – 排查网络连接

端口无法监听、连接堆积、TIME_WAIT 过多都可以通过 netstat -tunlp 或更轻量的 ss -tunlp 查看。排查"端口被占用"时用 ss -lp | grep :8080 即可定位持有端口的进程。建立连接过多时,ss -s 给出各状态的连接数统计,快速判断是否存在连接泄漏。

3. journalctl / dmesg – 查看系统与服务日志

systemd 管理的服 务出问题时,journalctl -u <service> -f 实时跟踪日志是最直接的方式。配合 --since today 可限定范围。内核层面的 OOM、硬件报错、驱动异常等信息在 dmesg -T 中按可读时间输出;出现 Out of memory: Killed process 时,结合 journalctl -k --grep="oom" 就能锁定被杀进程。

4. lsof – 查找文件与句柄占用

"磁盘空间已满但 df 与 ls 对不上"是典型场景,通常是大文件被删除但进程仍持有句柄。lsof | grep deleted 可以列出这些已被删除但仍打开的文件,对应进程释放后空间才会真正回收。排查端口被谁绑定时 lsof -i :443 也是一条常用路径。

5. strace – 跟踪系统调用

当前三个方向都无法定位根因时,strace -p <pid> 能实时打印目标进程发起的系统调用及其返回值。通过观察 read/write/open 的结果(如 ETIMEDOUT、EACCES、ENOENT),可以快速判断是网络超时、权限不足还是路径不存在。加上 -e trace=network 可只关注网络相关调用,减少噪音。

小结

这五个命令覆盖了资源、网络、日志、文件句柄与系统调用五个排错维度。实际使用时建议组合:先用 top 确认瓶颈类型,再用 netstat/ss 或 lsof 定位到具体进程与端口,随后用 journalctl 查服务日志,必要时以 strace 收尾,通常能在几分钟内锁定问题根因。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。