排错手册
从症状出发,走完可验证的排查路径。
每篇文章按“识别范围 → 验证假设 → 安全恢复 → 预防复盘”组织。请结合发行版、权限和变更流程执行示例命令。
Nginx 502 Bad Gateway:从上游进程到超时配置排查
502 的关键不是重启 Nginx,而是确认 upstream 是否可达、是否存活,以及响应是否在预期时间内返回。
开始排查MySQL 连接池耗尽:如何找出连接泄漏与慢查询
“Too many connections” 是容量、泄漏或慢事务的结果。先确定连接被谁占住,再决定限流、扩容或修复代码。
开始排查TLS 证书过期或替换失败:安全恢复 HTTPS 的步骤
证书故障要先识别实际对外提供的证书,再处理续期、部署链路和 CDN 缓存。
开始排查Kubernetes CrashLoopBackOff:用退出原因定位容器反复重启
CrashLoopBackOff 不是根因;用上一次容器退出码、事件与依赖健康度把问题定位到启动流程。
开始排查Docker 磁盘空间耗尽:先识别可清理对象,再恢复节点容量
Docker 节点磁盘满时,先量化镜像、容器、卷和日志的占用,避免一条 prune 误删仍需保留的数据。
开始排查Redis 内存打满与淘汰:判断是策略、热键还是数据生命周期
Redis 内存问题不能只靠扩大 maxmemory;要识别淘汰策略、无 TTL 数据与热键的增长模式。
开始排查Linux DNS 解析失败:从 resolv.conf 到容器网络逐层验证
DNS 故障要区分“没有网络”“解析器不可达”“返回错误记录”和“应用缓存旧结果”。
开始排查Linux 磁盘满但找不到大文件:处理 deleted 文件与 inode 耗尽
df 与 du 数字不一致,通常是已删除但仍被进程持有的文件;也可能是 inode 或挂载点视图问题。
开始排查Cron 任务没有执行:环境、权限、时区与日志的检查表
Cron 的常见问题是运行环境与交互式 shell 不同。用绝对路径、明确日志和时区来消除不确定性。
开始排查SSH 无法连接:区分网络、端口、认证与主机密钥问题
SSH 失败信息已经指向不同层级。先读错误原文,避免在未确认网络路径前修改认证配置。
开始排查PostgreSQL deadlock detected:用锁等待图修复并发顺序
死锁是事务互相等待形成的环;数据库中止一个事务只是保护机制,真正的修复通常在应用的访问顺序。
开始排查Linux Load Average 飙高:CPU、I/O 和不可中断任务的判断
Load Average 不等于 CPU 使用率。它也包含等待 I/O 的不可中断任务,必须结合运行队列、iowait 与进程状态判断。
开始排查Cloudflare 522 Connection Timed Out:从边缘到源站的连通性排查
522 表示 Cloudflare 与源站连接的建立或请求确认阶段超时,不应与等待 HTTP 响应超时的 524 混淆。核心是检查源站可达性、端口、防火墙与容量,而不是反复刷新 CDN 缓存。
开始排查