找回密码
立即注册
搜索
发回帖 发新帖

5208

积分

0

好友

668

主题
发表于 13 分钟前 | 查看: 3| 回复: 0

下面这 10 条命令,是自己平时在生产环境排错时翻来覆去会用到的。整体思路是:先看外部连通性,再查本机服务,最后深入内核和系统调用。

1. du:快速定位磁盘占用大户

du -xh /var --max-depth=1 | sort -h | tail -5

找出占用磁盘最大的文件夹。磁盘爆满、需要定位占用源时用。

2. lsof:揪出已删除但仍被占用的文件

lsof +L1 | grep deleted

列出已删除但进程仍占用的文件。磁盘显示 100% 占用,但 du 查出来占用很低时使用。重启对应进程即可释放空间。

3. ss:查看监听端口和对应进程

ss -tulnp

查看监听端口以及对应的进程。服务显示正在运行,但外部无法连接时使用。

4. nc:测试端口连通性

nc -zv <主机> <端口>

测试当前环境能否连通指定端口。SSH、数据库连接失败时使用。成功代表网络通;拒绝连接代表该端口没有服务监听;超时代表防火墙或安全组拦截。

5. dmesg:查看内核相关日志

dmesg -T | grep -i -E "oom|error|fail"

查看内核有关内存、磁盘、硬件的日志。应用频繁崩溃,但应用日志没有报错时使用,主要用来排查 OOM 杀手。

6. pidstat:按周期观察进程 CPU 占用

pidstat 2 5

每 2 秒输出一次各进程 CPU 占用,一共输出 5 组。服务器卡顿、top 刷新太快看不清元凶时使用。加上 -d 参数可以看磁盘 IO。

7. iostat:检查磁盘延迟和使用率

iostat -xz 1

输出每个磁盘的延迟(await)和使用率(%util)。CPU 空闲但服务器反应很慢时使用。await 高代表磁盘是瓶颈。

8. tcpdump:抓取指定端口的实时网络包

tcpdump -i any port 443 -nn

用 tcpdump 抓取指定端口的实时网络包。nc 探测端口通,但请求依旧失败或超时的时候使用,可以观察数据包是否到达、有无回包、是否被重置。

9. strace:跟踪进程的系统调用

strace -p <进程PID>

查看进程发起的所有 系统调用。程序卡死、无提示静默失败时使用,可以看到缺失文件、权限拒绝、连接一直无法建立等问题。

10. pstree:查看进程父子关系

pstree -p

以树形展示进程父子关系。出现大量子进程,需要找到父进程时使用。

排错思路:先从外部连通性入手(nc、tcpdump),再检查本机服务(ss、lsof),最后深入底层(dmesg、strace)。




上一篇:Flink 负责时间,Iceberg 负责记忆:Pinterest 如何最终确认数据分区?
下一篇:K8s 控制面 etcd 空间爆满:mvcc database space exceeded 导致 Pod 无法创建
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-11-13 20:11 , Processed in 0.071055 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表