linux技术文章
-
Linux 服务启动慢时,不要先盲目增加超时或删掉依赖。先用服务管理器的启动分析命令和 journalctl 对齐时间线,再区分依赖等待、网络就绪和进程自身初始化,最后用 After、Requires 与启动目标做最小修改和复测。484 收藏 -
io_uring 的 SQPOLL 能让内核线程轮询提交队列,减少提交路径上的系统调用,但它不是无条件加速。本文用 sq_thread_idle、SQPOLL 唤醒、提交批次和 CPU 观测,核对多队列程序何时受益、何时只是空转。484 收藏 -
用 journalctl 的 -b、时间范围和字段过滤快速收窄本次启动日志,避免把上一次启动遗留的报错误判成当前故障。484 收藏 -
用一个最小 C 示例说明 Linux fanotify 如何创建事件队列、标记目录、过滤创建与写入关闭事件,并解释目录不递归、队列溢出和文件描述符释放等边界。484 收藏 -
用 findmnt --kernel 配合 --mountpoint 或 --target,并显式输出 PROPAGATION 列,可以判断挂载点是 shared、slave、private 还是 unbindable;再结合 peer group 和 master 关系解释传播方向。483 收藏 -
Linux lsattr 怎样查看文件的不可变属性?本文从文件排障场景出发,说明如何读取属性字符串、区分 i 与 a 等标记、查看目录本身或递归内容,并解释 lsattr 结果为什么不能替代普通权限和实际写入检查。483 收藏 -
Linux 使用 tar 解压时遇到 Permission denied,先判断目标目录是否可写,再核对压缩包内路径、目录属主和 umask,最后用最小权限复测,避免直接使用高权限掩盖问题。482 收藏 -
用 iostat -x 的 await、aqu-sz 和 %util 组合判断 Linux 磁盘是延迟高、队列堆积,还是并行设备利用率接近上限,并给出可复查的采样方法。482 收藏 -
本文用 systemd WatchdogSec、sd_notify 与 Restart=on-watchdog 配置服务心跳,解释超时重启、NotifyAccess、启动限速和排障方法,避免进程存活却业务假死。482 收藏 -
Linux 上用 ss -lntp 可以同时查看监听地址、端口、PID 和进程名。本文解释进程字段缺失的权限原因,并给出按端口、地址族和网络命名空间定位服务的排查方法。481 收藏 -
journalctl 可以把 --unit 和 --boot 组合使用:先用 --list-boots 确认启动轮次,再按服务单元筛选某次启动的日志;最后可用 --since、--until、-n 和输出格式选项缩小排查范围。481 收藏 -
cgroup v2 的 memory.high 是内存使用软阈值,越界后让任务承受回收与节流压力,但不会直接触发 OOM;memory.max 是硬上限,回收失败时可在该 cgroup 内触发 OOM。本文说明两者如何配合及怎样用 memory.events 判断命中哪条线。481 收藏 -
Linux 查看已有任务的利用率钳制范围,核心是 uclampset -p PID;本文说明 -v、-a、-s 的读取边界,解释 util_min、util_max 与 [0,1024] 的关系,并区分查看权限和修改权限。481 收藏 -
Linux 的 io_uring_disabled 控制的是新 io_uring 实例能否创建,不会直接关闭已经存在的实例。本文按 0、1、2 解释普通进程、CAP_SYS_ADMIN、io_uring_group 与既有实例的边界,并给出修改 sysctl 前后的检查清单。480 收藏 -
GNU find 的 -delete 已隐含深度优先。通过普通文件筛选、起点保护和空目录条件,区分遍历顺序与删除范围,并说明 prune、逻辑分组及失败状态的处理。480 收藏