linux技术文章
-
服务管理器 服务依赖某个配置文件或挂载目录时,可以用 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 | 2个月前 | 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 收藏 -
Linux 批处理拖慢线上服务时,可以用 cgroup v2 的 io.max 对指定块设备做读写字节或 IOPS 限流,再用 io.stat 对比限流前后的服务时延。本文给出设备映射、配置、观测和安全回滚步骤。353 收藏 -
Linux 服务被 cgroup v2 限制后,先用 memory.high 做可恢复的内存限流,再用 memory.max 兜底,最后结合 memory.events 区分回收、节流和 OOM。本文用一个 worker 服务场景给出配置、观测和回滚步骤。486 收藏 -
Linux 机器重启后服务迟迟不能用,先别盯着单个进程猜原因。本文用关键依赖链命令拆出启动耗时和真正的等待点,再结合服务状态与 journalctl 验证是服务本身慢、依赖未就绪,还是启动顺序配置造成的延迟。113 收藏 -
Linux 机器重启后服务迟迟不能用,先别盯着单个进程猜原因。本文用关键依赖链命令拆出启动耗时和真正的等待点,再结合服务状态与 journalctl 验证是服务本身慢、依赖未就绪,还是启动顺序配置造成的延迟。382 收藏