#排查
共 13 篇
11-09
Communications link failure:连接池和 wait_timeout 的时间竞赛
每天凌晨第一笔请求必失败,重试就好。Aborted_clients 一千八百多,maxLifetime 用的是默认值,wait_timeout 被改成了十分钟。三组超时的先后顺序怎…
11-09
git bisect 两小时定位到一次提交:从 40 个候选里二分
结算回调偶发 NPE,六天四十多个提交没人认得出是哪次引入。先把偶发变必现,再把判定交给脚本做二分,两次跑偏后锁到一条「纯重构」提交。
11-08
滚动更新卡在 2/5 二十分钟:配额、maxUnavailable 与 PDB
Events 一片空白,五个旧 Pod 一个不退,两个新的 Ready 却不增加。真因在 status.conditions 里:Pod 配额满了,而 maxUnavailable…
11-08
load average 38,CPU 却空闲 71%:D 状态进程排查
8 核机器 load 38,CPU 七成空闲。vmstat 里 r=1、b=21,二十个进程堵在 IO 上。根因是备份任务冲掉页缓存,让采集服务的写退化成同步写,以及 load 告…
11-08
Nginx 的 499 和 504 一起涨:一次超时预算的重排
一个导出接口同时制造了 499 和 504。客户端 30 秒、Nginx 60 秒、上游无限制,三层超时全错位,还叠加了重试放大。超时怎么分层、重试为何只对幂等请求开。
11-07
Service 有地址,Ingress 却 502:Endpoints 为空的排查路径
Pod 是 Running 1/1,日志干净,直连 Pod IP 也通,域名访问却 502。ingress-nginx 的 upstream 指向一个已回收的 IP,根因是 Ser…
11-07
堆只用了 900 MB 却被 OOMKilled:Metaspace 与堆外内存
Xmx 2g,堆使用率 46%,容器却以 Exit Code 137 被杀。差出来的 1.5 GB 在 Metaspace 和 Netty 的池化堆外内存里。NMT 与 pmap …
11-07
df 还剩 42 GB,却报 No space left on device:inode 与已删除文件
磁盘明明还有 42 GB,日志却写不进去,df -i 显示 inode 已经 100%。三百多万个小文件来自 Postfix 队列和容器日志;另一类是同名报错但 du 和 df 对…
11-07
Too many connections:486 个 Sleep 连接,把数据库占满了
早高峰连接数打满,CPU 却只有 22%。486 个连接里 402 个在 Sleep,全来自同一个导出接口:Connection 关了,ResultSet 没关。连接预算怎么算、四…
11-06
Redis 大 key 与热 key:从库延迟 40 秒,主库 CPU 却只有 30%
告警说从库落后 40 秒,但主库 QPS 和 CPU 都没涨。真正的原因是一个 380 MB 的 hash:大 key 不让请求变多,只让单次操作变慢,再把这些慢操作放大到每一个从…
11-06
反向代理下的重定向:Location 为什么会变成 http://host:8081/
登录成功却跳到一个打不开的地址,Location 里带着内网端口甚至 localhost。这类问题几乎都出在三个地方:绝对 Location、漏传 X-Forwarded-*、以及…
11-06
Nginx location 匹配优先级:一次 /admin 被别的服务抢走的复盘
登录成功后跳到 /admin,结果落进了隔壁业务的后台,另一些时候干脆「找不到网页」。查了一晚上才发现是三条规则叠在一起:最长前缀匹配、^~ 的截断、以及 location 补尾斜…
11-05
Java 线上排查工具链:从 CPU 100% 定位到方法行
CPU 高、内存涨、线程堆积、接口慢,四类现象各对应不同的第一条命令。jstack、jcmd、Arthas 的完整用法与判读方法。