linux技术文章
-
Linux 删除日志后磁盘空间没有释放时,用 lsof +L1 找到仍持有 deleted 文件描述符的进程,再通过 /proc 复核 PID、FD 和 inode,并用服务重开或受控重启安全释放空间。486 收藏 -
systemd 可用 ProtectSystem=strict 把服务看到的文件系统默认设为只读,再用 ReadWritePaths 或 StateDirectory 等指令开放少量写入目录。本文给出迁移配置、边界和验证清单。485 收藏 -
Linux 服务启动慢时,不要先盲目增加超时或删掉依赖。先用服务管理器的启动分析命令和 journalctl 对齐时间线,再区分依赖等待、网络就绪和进程自身初始化,最后用 After、Requires 与启动目标做最小修改和复测。484 收藏 -
io_uring 的 SQPOLL 能让内核线程轮询提交队列,减少提交路径上的系统调用,但它不是无条件加速。本文用 sq_thread_idle、SQPOLL 唤醒、提交批次和 CPU 观测,核对多队列程序何时受益、何时只是空转。484 收藏 -
用 journalctl 的 -b、时间范围和字段过滤快速收窄本次启动日志,避免把上一次启动遗留的报错误判成当前故障。484 收藏 -
用 findmnt --kernel 配合 --mountpoint 或 --target,并显式输出 PROPAGATION 列,可以判断挂载点是 shared、slave、private 还是 unbindable;再结合 peer group 和 master 关系解释传播方向。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 的 io_uring_disabled 控制的是新 io_uring 实例能否创建,不会直接关闭已经存在的实例。本文按 0、1、2 解释普通进程、CAP_SYS_ADMIN、io_uring_group 与既有实例的边界,并给出修改 sysctl 前后的检查清单。480 收藏 -
Linux 出现僵尸进程时,进程已经结束,却因为父进程没有回收退出状态而暂时留在进程表里。本文用 ps 的 Z 状态、PPID 和父进程回收逻辑定位问题,再给出可回滚的处理顺序,避免一上来就误杀正常服务。478 收藏 -
Linux 使用 mount --bind 后执行 umount 报 target is busy,通常要先让 shell 和服务离开目标目录,再区分工作目录、打开文件、子挂载与传播状态逐项排查。476 收藏