-
Linux io_uring 取消未完成请求的核心,是用 IORING_OP_ASYNC_CANCEL 匹配目标 user_data,同时分别处理取消请求与原请求的 CQE。本文以 liburing 最小示例说明 0、-ENOENT、-EALREADY、-ECANCELED 的含义,以及竞态、批量匹配和资源释放边界。
-
systemd socket 配置 Accept=yes 后,会为每个进入连接启动一个 @.service 实例。本文用一组原创 unit 示例说明命名规则、%i 参数、socket 传递方式和排查清单。
-
用 nftables 为容器主机建立最小入站规则,区分 input 与 forward,放行状态连接、管理 SSH 和公开端口,并给出安全加载与排障清单。
-
Linux zram 写回不是简单把内存压力转给磁盘。本文用 backing_dev、idle/huge 页面选择、4 KiB 写回预算和 mm_stat/bd_stat 统计,说明如何在内存节省、磁盘 I/O 与闪存寿命之间建立可控边界。
-
io_uring 注册缓冲区会让内核提前固定并映射可复用的用户内存,后续小文件读写可通过 READ_FIXED 或 WRITE_FIXED 直接引用缓冲区索引。本文用 liburing 讲清注册、提交、完成和资源限制,并说明哪些场景不值得使用。
-
讲清 Linux PSI 的 some、full、avg10、avg60、avg300 与 total,给出 CPU、内存和 I/O 压力的判断框架、命令示例、cgroup 观察方法与告警阈值设计原则。
-
Linux 网络命名空间接入宿主机网桥的核心是创建 veth 对:宿主机端加入 bridge,另一端移入 netns;三层地址配置在网桥和命名空间端口上。本文给出完整命令、核对方法、路由边界与生产加固要点。
-
本文用一个进程事件示例说明 Linux BPF ring buffer 的内核态写入与用户态消费:定义 map 和事件结构,使用 reserve/submit 或 output,借助 libbpf poll 回调读取,并处理空间不足、长度校验、丢事件与资源释放。
-
Linux 的 bind mount 只是复制一个挂载视图,后续挂载事件是否同步取决于 shared、slave、private 和 unbindable 等传播属性。本文用隔离实验树说明传播方向、命名空间边界和清理方式。
-
Linux PSI 支持把 some/full、累计停顿微秒数和时间窗口写入压力文件,再用 poll 等待 POLLPRI 通知。本文从短时抖动漏报现场出发,给出可运行的用户态监听器,并说明权限、限频、文件描述符和 cgroup v2 边界。
-
journalctl --vacuum-size 只清理归档日志,活动文件仍可能让磁盘占用高于目标值。本文从一次手工清理出发,说明 --rotate、容量、时间、文件数与 journald.conf 保留策略如何配合,并区分持久化日志与运行时日志。
-
针对 Linux 磁盘容量未满却无法写入的问题,用 df、findmnt、quota 与 tune2fs 的只读指标区分数据块、inode、配额和 ext 保留块,并给出按证据处置与复测的方法。
-
journalctl 可在同一次调用中组合 --vacuum-time 与 --vacuum-size,同时约束归档日志的保留时间和容量。本文说明 --rotate、活动日志边界、清理前后核对及长期策略。
-
cgroup v2 的 io.weight 用 1 到 10000 的权重表达同级 cgroup 之间的块设备 I/O 相对份额。本文说明默认权重、major:minor 设备覆盖、控制器适用条件,以及如何用 io.stat 在真实争用中复查。
-
用 oom_score_adj 调整 Linux OOM-killer 的进程选择倾向,理解数值范围、权限边界、临时写入和重启持久化,避免把回收优先级误当成内存限额。