Linux 磁盘空间充足却无法创建文件:inode 耗尽的排查与治理实践
适用场景 应用报出 No space left on device,但 df -h 显示磁盘使用率不高;Nginx 无法写入访问日志、容器无法创建临时文件、CI 构建失败,甚至 touch 一个空文件也失败。这通常不是字节空间耗尽,而是文件系统可分配的 inode 已经用完。 本文以 ext4/XFS 主机为例,给出从
Tag
包含这个标签的文章。
适用场景 应用报出 No space left on device,但 df -h 显示磁盘使用率不高;Nginx 无法写入访问日志、容器无法创建临时文件、CI 构建失败,甚至 touch 一个空文件也失败。这通常不是字节空间耗尽,而是文件系统可分配的 inode 已经用完。 本文以 ext4/XFS 主机为例,给出从
适用场景 服务运行正常,但在故障窗口里 journalctl 中恰好缺少应用最关键的一段日志;常见于 Java、Python、Nginx/OpenResty、容器运行时或短时间大量报错的 systemd 服务。运维人员往往把它误判为程序没有输出,实际日志可能已经被 systemd-journald 的限流机制主动丢弃。
适用场景 Linux 宿主机的根分区或 Docker 数据盘持续告警,/var/lib/docker/overlay2 占用不断增加;但镜像和容器数量并不多,普通镜像清理也没有效果。本文给出 overlay2 的归属定位、止血和治理流程。 以下路径以 /var/lib/docker 为例。先用 docker info
适用场景 部署在 Kubernetes 中的 Web、API 或消费服务在高峰期 CPU 已长期接近上限,但 HorizontalPodAutoscaler(HPA)始终保持原副本数;也可能在 kubectl get hpa 中看到 CPU 显示为 <unknown>。本文以基于 CPU 利用率的 HPA 为例,给出一
适用场景 Linux 服务器上的 Java、Python、Go 或 Node.js 服务由 systemd 托管。发布后或依赖异常时,进程在几秒内连续退出;即使问题随后已修复,执行 systemctl restart 仍失败,状态显示为 failed,日志里出现 Start request repeated too q
适用场景 本文适用于 Prometheus 运行一段时间后出现以下现象的场景: Prometheus 数据目录持续膨胀,磁盘空间很快被打满; prometheus_tsdb_head_series、prometheus_tsdb_head_chunks 持续上涨; 查询变慢,Prometheus 重启时间明显变长; 日
适用场景 本文适用于 Kubernetes 集群中出现以下问题的场景: 新发布的 Pod 长时间处于 Pending 状态; kubectl describe pod 中看到 node(s) had disk pressure; 节点状态出现 DiskPressure=True; 容器镜像、日志或临时目录占满节点磁盘,
适用场景 线上服务出现间歇性超时、请求延迟抖动、连接偶发重置,但应用日志没有明显报错,CPU 总使用率也不高。进一步观察会发现某几颗 CPU 的 si 软中断占用很高,网卡统计里存在 rx_dropped、rx_missed_errors 或 ring buffer 溢出。这类问题常见于高并发网关、Nginx 入口机、
适用场景 本文适用于 Nginx 作为反向代理或网关时,用户访问接口偶发或持续返回 504 Gateway Time-out,错误日志中出现 upstream timed out、while reading response header from upstream 等信息的场景。 典型架构如下: Client ->
适用场景 这篇文章适用于线上服务出现“偶发连接超时、重试后成功、服务 CPU 不高但新连接建立慢”的问题,尤其是 Nginx、网关、Java/Python Web 服务、RPC 服务或四层代理在流量突增时出现以下现象: 客户端报 connection timed out、connect timeout 或偶发 502/