linux技术文章
-
服务刚刚恢复时,先别把整本日志倒出来。本文用 journalctl 的时间、unit、boot 和 invocation 四层筛选,把一次 systemd 服务故障压缩成可核对的证据链,并给出日志不持久化时的处理边界。200 收藏 -
Linux 上看到默认路由并不等于应用一定会从这张网卡发包。本文用 ip route get 对照目的地址、源地址、fwmark 和实际连通性,定位策略路由与多出口主机的出站选择。421 收藏 -
Linux 服务加上严格只读隔离后,配置和运行文件写入失败并不一定是文件权限问题。本文用 ReadWritePaths、RuntimeDirectory 和 findmnt 验证真实挂载边界,再给出可回滚的 unit 配置与验收清单。185 收藏 -
主机内存压力突然升高时,systemd-oomd 可以利用 PSI 在内核 OOM 之前处理低优先级服务。本文用 ManagedOOMMemoryPressure、ManagedOOMPreference 和 oomctl 组成一条可回滚的配置与验收路径,说明 systemd-oomd 的候选 cgroup、swap 前提和误杀边界。452 收藏 -
服务管理器 服务依赖某个配置文件或挂载目录时,可以用 ConditionPathExists 做启动前条件判断。本文从 skipped 现象入手,讲清条件未满足时如何用 服务查询命令、journalctl 和 unit 文件定位,并给出恢复后的验收步骤。119 收藏 -
Linux 目录统计结果异常时,du 和 find 可能把挂载点、bind mount 或其他文件系统算进来。本文用 find -xdev、-mount、df、findmnt 组成核对路径,区分目录树大小与底层文件系统用量。416 收藏 -
/run 或容器临时目录写满时,df -h 看到的 tmpfs 并不等于一块独立硬盘。本文用 findmnt、df -h、df -i 和 mount 参数核对 tmpfs 的挂载、容量、inode 与内存边界。273 收藏 -
用 openat2 的 resolve 约束限制不可信相对路径,分清 RESOLVE_BENEATH 与 RESOLVE_IN_ROOT 的边界,并处理 EXDEV、EAGAIN 和内核兼容性验收。356 收藏 -
文章 · linux | 1个月前 | Linux · 热更新 · 文件描述符 · Linux io_uring 固定文件热更新 draining IORING_REGISTER_FILES_UPDATE
围绕 io_uring 固定文件热更新,说明稀疏槽、IORING_REGISTER_FILES_UPDATE 和 draining 状态如何配合,避免旧请求与新文件交错。226 收藏 -
从 IOSQE_FIXED_FILE、固定文件索引和稀疏表入手,定位 io_uring 请求返回 EBADF 的原因,并用 draining 到 ready 的切换边界完成在线更新验收。102 收藏 -
用 pidfd_open 获取稳定的进程引用,配合 poll 观察退出、waitid 回收状态,解决长驻监控器因 PID 复用误判进程身份的问题。293 收藏 -
从 IN_Q_OVERFLOW 这条证据入手,区分 inotify 事件队列溢出、watch 数量耗尽和应用消费过慢,再给出 max_queued_events、max_user_watches 的核对、修复与恢复流程。428 收藏 -
服务明明还有内存,却突然无法创建新线程或子进程,优先检查 cgroup v2 的 pids.max、pids.current、pids.peak 和 pids.events,再回到服务管理器的 TasksMax=确认限制来源。本文给出一套可回滚的定位顺序。473 收藏 -
用一个最小 TCP 事件循环说明 epoll 边沿触发为什么会漏读、什么时候必须读到 EAGAIN,以及 EPOLLONESHOT 如何重新挂回监听队列。416 收藏 -
Linux 批处理拖慢线上服务时,可以用 cgroup v2 的 io.max 对指定块设备做读写字节或 IOPS 限流,再用 io.stat 对比限流前后的服务时延。本文给出设备映射、配置、观测和安全回滚步骤。453 收藏