linux技术文章
-
systemd.socket 会先持有监听套接字,再把文件描述符交给被激活的服务。本文从 Accept=no、Accept=yes、Sockets= 和 FileDescriptorName= 四个边界说明服务怎样正确继承监听套接字。128 收藏 -
Linux 下排查 Too many open files 时,ulimit -n 用来读取当前 shell 的文件描述符上限。本文区分软上限与硬上限,说明 ulimit -Sn、ulimit -Hn、ulimit -a 和 /proc/self/limits 的关系,并解释为什么服务进程的值可能不同。128 收藏 -
从 memory.current 建立基线,解释 cgroups v2 的 memory.high、memory.max、memory.events 和 memory.stat 如何配合处理内存压力与 OOM。126 收藏 -
Linux 文件句柄上限应区分当前 Shell、目标进程和系统范围。本文给出软硬限制、描述符数量及系统指标的只读查询方法,并说明巡检采样失败和容量不足的判断边界。125 收藏 -
用一对 systemd.path 与 oneshot 服务监听文件变化,给出最小配置、启用和停用命令,并解释触发条件、重复调用、初始状态及业务处理责任。123 收藏 -
Linux 策略路由不是按 ip rule 输出的视觉位置随意匹配,而是按 priority 从小到大检查。本文用一组只读诊断命令,把规则顺序、源地址、入口接口、fwmark、路由表查询和最终结果串起来。118 收藏 -
Linux systemd 服务失败时,结合状态属性与 journal 日志,按单元、启动批次和时间定位原因,区分执行错误、应用退出和重试限制,并保留排障现场。117 收藏 -
讲清 systemd RestrictAddressFamilies 的 allow-list、deny-list、AF_UNIX 保留和 socket activation 边界,并给出可回退的服务 drop-in 配置。117 收藏 -
systemd-analyze blame 可以按 unit 初始化耗时排序,帮助快速找出启动排查线索,但耗时靠前不等于服务就是根因。本文结合 systemd-analyze time、blame 和 critical-chain,说明怎样定位慢服务、核对依赖并识别统计边界。112 收藏 -
用 nftables 命名集合承载可变地址清单,讲清批量替换、网段区间、timeout、gc-interval 以及发布后的四项复查方法。112 收藏 -
Linux rsync 被中断后,普通稳定文件优先使用 --partial-dir 保留暂存数据;只有确认目标端前缀与源端一致且文件会继续增长时,才考虑 --append 或 --append-verify。本文按文件类型、暂存位置和校验边界说明参数选择,并解释 --inplace 的代价。108 收藏 -
systemd.path 的 PathChanged 可监视指定目录变化并激活配对服务。本文提供 path 与 oneshot 服务配置,说明递归监视、事件合并、初始扫描和文件完成状态的边界,以及幂等扫描器的职责。106 收藏 -
systemd.socket 的 Accept=yes 会为每个流式连接启动一个模板服务实例,Accept=no 则由一个普通服务统一接收监听套接字。本文从文件描述符、服务命名、性能隔离和实例回收几个方面说明如何选择。106 收藏 -
tmpfs 适合可重建、可丢失的临时数据,但它会占用虚拟内存并可能使用 swap。本文从数据生命周期、容量、inode、权限和观测命令判断 Linux tmpfs 是否适合。105 收藏 -
介绍Linux systemd IOWeight的同层竞争范围、持久配置方法与设备支持条件,区分启动权重和带宽上限,说明为何权重不能保证固定吞吐。102 收藏