linux技术文章
-
Linux inotify 出现 IN_Q_OVERFLOW 时,不能继续相信增量事件。本文说明如何检查队列参数、暂停消费、全量重扫目录并重建 watches,避免索引和缓存悄悄失真。398 收藏 -
Linux epoll 使用 ET 边沿触发时,事件只表示状态发生过变化。本文解释为什么要配合非阻塞 fd 循环读取到 EAGAIN,并给出关闭、半包、饥饿和事件缓存的处理清单。366 收藏 -
Linux hostname 属于进程所在的 UTS namespace。本文用 unshare、/proc/PID/ns/uts 和 nsenter 说明隔离视图、CAP_SYS_ADMIN 权限与宿主机 hostname 不变的原因。177 收藏 -
Linux cgroup v2 的 memory.max 是硬限制,但并发计费、回收时机和层级统计会让 memory.current 短暂越界。本文区分 memory.high 与 memory.max,并用 memory.events、memory.stat 和进程归属定位是否真的发生 OOM。352 收藏 -
Linux tmpfs 使用率高不一定代表物理内存耗尽。本文用 df、du、df -i、Shmem、swap 和 lsof 对照判断挂载上限、可见文件、inode 与删除后仍打开文件的区别。468 收藏 -
mount --bind 增加的是同一文件层级的另一条路径,不会自动复制 inode 或改变 owner、mode。本文用挂载点属性、findmnt、mountinfo、stat、ACL 和进程凭据拆解权限表现不同的原因。363 收藏 -
Linux 中判断默认路由不能只看 ip route 的排列顺序:先按最长前缀缩小候选,再比较 metric,最后用 ip route get 验证实际出口。同 metric 场景应明确区分等价多路径和主备配置。277 收藏 -
Linux 上用 ss -lntp 可以同时查看监听地址、端口、PID 和进程名。本文解释进程字段缺失的权限原因,并给出按端口、地址族和网络命名空间定位服务的排查方法。481 收藏 -
用 journalctl 同时限定 systemd unit 与当前系统启动,掌握 --list-boots、boot ID、时间范围和服务重启边界,快速定位本次启动中的 Linux 服务日志。288 收藏 -
Linux 使用 find 清理大量文件时,关键是避免一次性展开全部路径。本文比较 -exec {} +、-print0 | xargs -0 和 -delete 的边界与安全用法。232 收藏 -
Linux 的 io_uring_disabled 控制的是新 io_uring 实例能否创建,不会直接关闭已经存在的实例。本文按 0、1、2 解释普通进程、CAP_SYS_ADMIN、io_uring_group 与既有实例的边界,并给出修改 sysctl 前后的检查清单。480 收藏 -
Linux 创建 io_uring 时报 EPERM,不一定是程序参数写错。本文按 io_uring_disabled、io_uring_group、CAP_SYS_ADMIN、SQPOLL 和已有实例边界给出检查顺序。390 收藏 -
Linux inotify 队列溢出后不会补发丢失事件,本文说明如何识别 IN_Q_OVERFLOW,通过全量扫描、缓存重建和递归 watch 重建恢复完整状态。456 收藏 -
Linux inotify 不保证一次写入只产生一条业务通知。本文从事件合并、去重键、IN_Q_OVERFLOW 和目录监听竞态四个方面,给出可恢复的处理策略。145 收藏 -
Linux mount namespace 并不自动保证挂载修改不会影响宿主,关键要看 shared、slave、private 等传播属性。本文用 unshare、mount --make-rprivate 和 mountinfo 检查,说明如何把临时挂载限制在隔离命名空间内。127 收藏