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 主机为例,给出从
适用场景 使用 Celery + Redis/RabbitMQ 承担异步任务。队列中仍有大量待执行任务,但监控显示少数 Worker 忙碌、其余 Worker 空闲;或者短任务被长任务“压住”,整体延迟持续升高。本文以默认的 prefork 并发池和 RabbitMQ 为例,Redis broker 的排查思路相同。
适用场景 这篇文章适用于线上服务突然退出、容器被重启、systemd 日志里只有 Killed、监控显示内存瞬时打满,但应用日志没有明确异常栈的场景。常见环境包括物理机、云主机、Docker 容器和 Kubernetes 节点。 OOM Killer 的本质是内核在内存不可回收时主动选择进程终止,以保证系统还能继续运行
适用场景 这类问题常见于网关、爬虫、批处理任务、消息消费者、API 聚合服务等高并发出站访问场景。应用本身没有明显 CPU 或内存瓶颈,但访问下游服务、Redis、MySQL 代理、HTTP API 时偶发超时,重启应用后短时间恢复,过一会儿又开始失败。 临时端口耗尽的核心原因是:本机主动发起大量 TCP 连接,连接关
适用场景 本文适用于 Linux 服务器上使用 systemd 管理自研服务、脚本任务、Java 服务、Python 服务或二进制程序时,执行 systemctl start 后服务立即失败,并在日志中看到 status=203/EXEC 的场景。 这类问题通常不是业务代码运行时报错,而是 systemd 在执行 Ex
适用场景 这类问题常见于日志文件、临时文件或应用输出文件被手动 rm 删除后,df -h 仍然显示磁盘空间没有释放。典型环境包括: 业务服务持续写入日志,日志文件被误删或被不规范清理脚本删除。 Nginx、Java、Python、Go 服务长期运行,进程仍持有旧文件句柄。 Docker 容器内日志或挂载目录文件被删除,
适用场景 这篇文章适用于线上 Redis 作为缓存、会话、计数器或排行榜组件时,出现接口响应时间突然升高、Redis CPU 飙升、慢查询增多、网络出口流量变大等问题的排查。 典型环境包括: 单机 Redis 或 Redis Sentinel 架构; Redis Cluster 分片集群; 业务使用 Python、Ja
ss命令用于显示socket状态. 他可以显示PACKET sockets, TCP sockets, UDP sockets, DCCP sockets, RAW sockets, Unix domain sockets等等统计. 它比其他工具展示等多tcp和state信息. 它是一个非常实用、快速、有效的跟踪IP连
[TOC] 1、Dos 攻击防范(自动屏蔽攻击 IP) #!/bin/bash DATE=$(date +%d/%b/%Y:%H:%M) LOG_FILE=/usr/local/nginx/logs/demo2.access.log ABNORMAL_IP=$(tail -n5000 $LOG_FILE |grep $
1、修改/etc/ansible/hosts文件 添加IP+主机名+端口号+用户名+登录密码 cat >> /etc/ansible/hosts << EOF [WB_AND] 192.168.1.202 hostname=spider-01 ansible_ssh_port=2968 ansible_ssh_user