这套分层排查思路很实用,尤其是区分“解析失败、拒绝连接、连接超时”三类现象,能少走很多弯路。我一般先在请求方容器里用 getent 确认服务名,再用 nc 测真实端口,随后到目标容器检查进程是否监听在 0.0.0.0。之前还遇到过 VPN 网段与 Docker 子网重叠,表现为解析正常但一直超时,调整地址池后才恢复。建议 C...
这套排查顺序很实用,尤其是先用 cat、stat 或文件哈希确认容器内文件是否更新,能快速把“挂载问题”和“应用没刷新”分开,避免一上来就删缓存、重建镜像。
我还遇到过单文件挂载配合编辑器原子保存的问题:宿主机文件的 inode 已变,容器里却仍指向旧对象。后来改为挂载整个配置目录,并执行 docker compose up -d...
补充一个实用细节:读取 cpu.stat 时最好按固定间隔连续采样,不要只看累计值。比如间隔 10 秒比较 nr_throttled 和节流时长的增量,再与请求延迟、QPS 同时对照,更容易判断是否真由配额不足引起。
另外,文中的命令似乎少了一个换行,应分别执行获取 PID 和查看 cgroup。Java、Go 等运行时还要留意其识别到的可用...
排查思路很实用,尤其是先找第一个未命中层,比只盯着耗时最长的步骤有效得多。我们之前在 CI 里遇到过本地秒构建、流水线每次重装依赖,最后发现临时 Runner 根本没有共享本地缓存。
补充一个小经验:优化后可以故意分别修改 README、源码和锁文件做对照测试。如果改 README 就触发依赖安装,通常说明 COPY 范围或 .dockerign...
这个思路很实用,尤其是分别在宿主机和容器内做禁止分片测试,能快速缩小问题范围。补充一点:抓包时除了关注 TCP 重传,也可以明确过滤相关 ICMP 报文,判断是否存在 PMTU 黑洞。若临时调低容器 eth0 后业务立即恢复,基本能验证方向,但最终仍应重建 Docker 网络并确认新容器中的 MTU。生产环境修改前还要记录原配置,评估 Docker 重启影响,并用文件上传、镜像拉取和 TLS...