-
Linux cgroup v2 的 memory.reclaim 是面向目标 cgroup 的主动回收接口。本文说明如何准备目标目录、写入回收量、处理 EAGAIN,并划清主动回收与内存压力指标的边界。
-
Linux openat2 可以把可信目录文件描述符作为 dirfd,并用 RESOLVE_BENEATH 限制路径解析不能逃逸根目录。本文用 C 示例说明 RESOLVE_NO_MAGICLINKS、EXDEV、EAGAIN、ENOSYS 的处理,以及它和 RESOLVE_IN_ROOT、RESOLVE_NO_SYMLINKS 的区别。
-
io_uring 注册缓冲区适合在 ring 初始化阶段完成一次注册,再通过 fixed I/O 和 buf_index 复用。本文解释高并发读写如何减少重复注册开销,并从 CQE、索引、地址范围、资源限制和生命周期定位空结果或负 errno。
-
Linux cgroup v2 的 io.stat 按 MAJ:MIN 设备号记录 rbytes、wbytes、rios、wios 等累计值。本文说明如何定位目标设备、区分读写字段,并通过两次采样差值计算区间吞吐。
-
使用Linux getconf FILESIZEBITS查询目标目录报告的文件大小限制位数,区分数值、undefined和查询失败,并说明它与应用off_t类型、当前文件长度和可用空间的区别。
-
多网卡或策略路由排障时,ip route show 只能看到配置,ip route get 才能按目的地址、源地址和出口网卡查询内核实际采用的路由结果。
-
Linux systemd-analyze dump 怎样按 unit 过滤服务管理器状态?本文用精确 unit 名和 glob 模式缩小排查范围,说明 --user 的实例边界、dump 文本的阅读方法,以及为什么脚本应改用 systemctl show 读取固定属性。
-
Linux 维护 journald 日志时,journalctl --rotate 会请求 systemd-journald 将当前活动 journal 文件归档并创建替代文件。本文结合一次维护场景拆开 rotate、sync 和 vacuum 的职责,给出低风险命令顺序与判断边界。
-
Linux systemd 通过 CPUQuota= 为服务设置 CPU 时间上限,CPUQuota=200% 表示最多使用两个 CPU 的时间。本文用 drop-in 配置、CPUQuotaPeriodSec=、systemctl show 检查和回退步骤说明如何限制服务 CPU 配额,并解释 CPUQuota 与 CPUWeight、父 slice 的边界。
-
Linux 的 mount --rbind 会把源目录树及其内部的子挂载一起映射到新位置。本文区分 --bind 与 --rbind,说明 rslave、rprivate、findmnt、mountinfo 和递归卸载的配合方式。
-
Linux nftables 的 named set 可以通过 flags timeout 让元素拥有生命周期,再用元素级 timeout 设置临时地址或端口的自动过期时间。本文从创建集合、接入规则、查看 expires 到动态刷新,说明临时规则如何自动清理以及哪些场景不适合使用超时集合。
-
用 getent ahostsv4 和 ahostsv6 分别查看主机名的 IPv4、IPv6 地址解析结果,解释输出字段、AI_V4MAPPED 行为、退出码以及双栈排障边界。
-
高并发批处理不应在每个请求里重复注册 io_uring 缓冲区。本文说明固定缓冲区、buffer index、addr/len 与请求生命周期的关系,并给出减少重复注册和临时分配的静态 C/liburing 示例。
-
io_uring注册文件通过ring槽位与IOSQE_FIXED_FILE减少重复I/O的文件查找和引用管理开销。本文对比普通fd路径,给出注册与读取准备示例,说明槽位更新、资源释放及性能取舍。
-
Linux clone3 的 set_tid[] 用来为新进程在一个或多个 PID namespace 中请求特定 PID。本文说明数组顺序、内核版本、能力要求和 PID 1 容器 init 的 C 语言调用方式,并整理常见错误码的排查方法。