linux技术文章
-
Linux 服务由服务管理器启动时,文件描述符上限不能只改当前终端的 ulimit。本文用 LimitNOFILE 配置服务级上限,再核对启动用户、进程实际限制和 journal 日志,给出可回滚的上线检查方法。493 收藏 -
服务器上的 /data 到底来自哪块设备,不能只看目录名。本文用 findmnt 对照 /etc/fstab、UUID 与 /proc/self/mountinfo,给出稳定输出、异常判断和不改配置的核对流程。492 收藏 -
Linux 目录的 rwx 并不是普通文件权限的简单复刻:r 决定能否列目录,w 决定能否修改目录项,x 表示搜索和逐级穿过目录。本文用 chmod、namei 和 stat 验证一个路径为何能进入、能否列出,以及如何留下最小权限。490 收藏 -
Linux 服务管理器读取 EnvironmentFile 后变量仍为空时,优先检查文件格式、路径权限和 daemon-reload 与 restart 的执行顺序。本文用一个最小服务逐项验证,给出可回滚的排查路径。489 收藏 -
Linux 服务被 cgroup v2 限制后,先用 memory.high 做可恢复的内存限流,再用 memory.max 兜底,最后结合 memory.events 区分回收、节流和 OOM。本文用一个 worker 服务场景给出配置、观测和回滚步骤。486 收藏 -
Linux 服务启动慢时,不要先盲目增加超时或删掉依赖。先用服务管理器的启动分析命令和 journalctl 对齐时间线,再区分依赖等待、网络就绪和进程自身初始化,最后用 After、Requires 与启动目标做最小修改和复测。484 收藏 -
文章 · linux | 1天前 | 性能优化 · Linux · 系统调用 · io_uring · 异步IO · Linux 异步IO io_uring SQPOLL IORING_SETUP_SQPOLL
io_uring 的 SQPOLL 能让内核线程轮询提交队列,减少提交路径上的系统调用,但它不是无条件加速。本文用 sq_thread_idle、SQPOLL 唤醒、提交批次和 CPU 观测,核对多队列程序何时受益、何时只是空转。484 收藏 -
用 journalctl 的 -b、时间范围和字段过滤快速收窄本次启动日志,避免把上一次启动遗留的报错误判成当前故障。484 收藏 -
Linux 使用 tar 解压时遇到 Permission denied,先判断目标目录是否可写,再核对压缩包内路径、目录属主和 umask,最后用最小权限复测,避免直接使用高权限掩盖问题。482 收藏 -
Linux 服务管理器的 RuntimeMaxSec 可以给服务设置最长运行时间,但它不是普通的请求超时。本文用一次性数据同步服务说明如何配置运行时限、从服务状态命令和 journalctl 判断超时结果,并区分正常退出、失败重启与限时后的恢复边界。474 收藏 -
服务明明还有内存,却突然无法创建新线程或子进程,优先检查 cgroup v2 的 pids.max、pids.current、pids.peak 和 pids.events,再回到服务管理器的 TasksMax=确认限制来源。本文给出一套可回滚的定位顺序。473 收藏 -
日志轮转后 df 仍显示磁盘快满,常见原因不是旧日志还在目录里,而是进程仍持有已删除文件的文件描述符。本文用 df、du、lsof 和服务管理器日志命令逐层确认占用来源,并给出不误杀业务进程的恢复步骤。469 收藏 -
从文件发送到 TCP 连接的实际路径出发,比较 Linux sendfile 与 splice 的适用边界,并用 strace 和返回值验收零拷贝改造是否真的生效。467 收藏 -
文章 · linux | 2星期前 | Linux · 服务管理 · 安全加固 · 服务部署 · 文件权限 · Linux 迁移 服务单元 DynamicUser StateDirectory 服务降权 持久目录
把 Linux 服务改成 DynamicUser=yes 后,原来写在 /var/lib 下的目录很容易因为属主和目录创建时机出问题。本文用 StateDirectory=cache-worker 迁移一个缓存 worker,解释目录权限、旧数据迁移、重启复测和回滚边界。462 收藏 -
从 Linux 服务的 MemoryMax 限制出发,结合 memory.events 和 journalctl 证据判断 OOM 来源,再给出安全的恢复、调参与回滚检查。462 收藏