linux技术文章
-
文章 · linux | 4星期前 | Linux · 故障排查 · 文件系统 · inotify · 事件队列 · Linux inotify IN_Q_OVERFLOW max_queued_events 文件变更监听
从 IN_Q_OVERFLOW 这条证据入手,区分 inotify 事件队列溢出、watch 数量耗尽和应用消费过慢,再给出 max_queued_events、max_user_watches 的核对、修复与恢复流程。428 收藏 -
服务突然报 too many open files,先别急着把进程上限调大。本文从进程软硬上限、打开句柄类型和监听连接三个证据面定位文件描述符耗尽,再用一个可复测的恢复顺序判断问题是泄漏、突发流量还是配置边界。428 收藏 -
Linux 上的服务管理器反复重启,常见原因不是 Restart= 配错这么简单,而是进程真实退出原因、启动限流和 journal 时间窗没有对齐。本文从一个 api-worker.service 持续重启的场景出发,按服务状态、退出结果、启动限流和日志证据逐层核对,给出可回滚的修复顺序。428 收藏 -
通过 ~/.ssh/config 为多台服务器配置 Host 别名、独立账号和 IdentityFile,并用 IdentitiesOnly 与 ssh -G 排查密钥串用和配置不生效问题。423 收藏 -
Linux 中 find 与 xargs 通过管道传递文件名时,默认空白解析会拆坏含空格、制表符或换行的路径。本文说明 find -print0 与 xargs -0 的配对写法、-r 和 -- 的参数边界,以及何时直接使用 find -exec。422 收藏 -
Linux 上看到默认路由并不等于应用一定会从这张网卡发包。本文用 ip route get 对照目的地址、源地址、fwmark 和实际连通性,定位策略路由与多出口主机的出站选择。421 收藏 -
使用 ip netns exec 找不到接口时,先确认命名空间名称和进程所在的 network namespace,再区分接口归属与链路状态,避免在错误的视图里重复创建或启用设备。421 收藏 -
cgroup v2 的 memory.high 是内存节流边界,不是 OOM 硬上限。本文用可复制的命令说明如何配置字节值,并结合 memory.current、memory.events.local、memory.stat 和 PSI 排查超限原因。420 收藏 -
systemd timer 的 Persistent=true 只对 OnCalendar 生效。本文用一个 oneshot service 演示如何区分计划时间、补跑候选、实际触发和服务失败。418 收藏 -
用一个最小 TCP 事件循环说明 epoll 边沿触发为什么会漏读、什么时候必须读到 EAGAIN,以及 EPOLLONESHOT 如何重新挂回监听队列。416 收藏 -
Linux 目录统计结果异常时,du 和 find 可能把挂载点、bind mount 或其他文件系统算进来。本文用 find -xdev、-mount、df、findmnt 组成核对路径,区分目录树大小与底层文件系统用量。416 收藏 -
Linux 上用 find 清理旧日志时,真正危险的不是命令太长,而是路径、时间条件和删除动作没有分开验收。本文从 -mtime、-path、-type f 和 -print 预览入手,给出可回滚的清理顺序,并覆盖空格文件名、符号链接、挂载目录与定时任务边界。415 收藏 -
Linux epoll 的 ET(边沿触发)模式不是只读一次,而是每次收到事件后把非阻塞 fd 处理到 EAGAIN。本文解释剩余数据为何不再提醒、给出 recv 循环的错误分支,并补上 EOF、EINTR 和单连接饥饿的排查要点。414 收藏 -
容器里看不到宿主机进程通常是 PID namespace 的正常隔离,而不是进程消失。本文结合 /proc、PID 1、procfs 挂载和 nsenter 说明如何判断进程视图边界。412 收藏 -
Linux user namespace 里看到 root 并不代表拥有宿主机权限。本文用 uid_map、gid_map、setgroups 和文件属主核验一组映射是否真正生效,并说明它与容器权限边界的关系。411 收藏