Linux conntrack 表满导致连接超时的排查与治理实践
适用场景 本文适用于 Linux 主机、NAT 网关、Docker 宿主机、Kubernetes Node 或开启防火墙规则的服务器。当业务出现偶发连接超时、DNS 查询失败、服务间调用间歇性失败,而 CPU、内存、磁盘都看起来正常时,可以把 conntrack 连接跟踪表作为重点排查对象。 典型环境包括: 单机部署了
Tag
包含这个标签的文章。
适用场景 本文适用于 Linux 主机、NAT 网关、Docker 宿主机、Kubernetes Node 或开启防火墙规则的服务器。当业务出现偶发连接超时、DNS 查询失败、服务间调用间歇性失败,而 CPU、内存、磁盘都看起来正常时,可以把 conntrack 连接跟踪表作为重点排查对象。 典型环境包括: 单机部署了
适用场景 这类问题常见于 Ubuntu、Debian 或启用了 systemd-resolved 的 Linux 主机:宿主机可以正常解析域名,但 Docker 容器内访问外部域名失败,表现为应用请求超时、包管理器无法安装依赖、容器启动后健康检查一直失败。 典型环境包括: 宿主机使用 Docker Engine 运行业
适用场景 这篇文章适用于 Nginx 接入 Filebeat、Logstash、Elasticsearch 或其他日志平台后,出现下面几类问题的场景: Nginx 访问日志本地已经写入,但日志平台几分钟后才看到。 部分时间段日志缺失,业务同学按 trace id 或客户端 IP 查不到请求。 日志轮转后采集停止,重启
适用场景 本文适用于 Kubernetes 中业务 Pod 间歇性进入 CrashLoopBackOff、RestartCount 持续增长、服务短时间不可用,但应用日志里又看不到明确业务异常的场景。常见于 Spring Boot、Django、Go HTTP 服务、Node.js 服务等 Web 应用,尤其是刚接入健
适用场景 本文适用于 Prometheus 已经配置了 scrape_configs,但在 Targets 页面看到目标实例显示 DOWN,或者 PromQL 查询 up{job="xxx"} == 0 的场景。常见对象包括 node_exporter、应用自暴露的 /metrics、Kubernetes Servic
适用场景 这篇文章适用于使用 Python httpx 调用内部 HTTP 接口、第三方 API、网关或微服务时,线上偶发出现请求超时、任务堆积、接口吞吐下降的问题。常见场景包括: 定时任务批量调用接口; FastAPI、Django、Celery worker 中复用 httpx.Client 或 httpx.Asy
适用场景 这篇文章适用于线上服务突然退出、容器被重启、systemd 日志里只有 Killed、监控显示内存瞬时打满,但应用日志没有明确异常栈的场景。常见环境包括物理机、云主机、Docker 容器和 Kubernetes 节点。 OOM Killer 的本质是内核在内存不可回收时主动选择进程终止,以保证系统还能继续运行
适用场景 这篇文章适用于 MySQL 5.7、MySQL 8.0 或兼容 MySQL 协议的数据库中,执行 ALTER TABLE、CREATE INDEX、DROP INDEX、TRUNCATE TABLE 等 DDL 时长时间不返回,同时业务侧出现接口变慢、连接数升高、写入卡住等问题的场景。 元数据锁的英文是 Me
适用场景 这类问题常见于单机 Docker、docker-compose 或没有接入集中日志系统的测试/生产节点。应用本身还在运行,但主机磁盘空间持续下降,最终出现接口异常、容器重启失败、镜像拉取失败、数据库写入失败等问题。 典型环境特征: Docker 使用默认 json-file 日志驱动。 容器持续输出访问日志、
适用场景 这类问题常见于网关、爬虫、批处理任务、消息消费者、API 聚合服务等高并发出站访问场景。应用本身没有明显 CPU 或内存瓶颈,但访问下游服务、Redis、MySQL 代理、HTTP API 时偶发超时,重启应用后短时间恢复,过一会儿又开始失败。 临时端口耗尽的核心原因是:本机主动发起大量 TCP 连接,连接关