首页/系统/信创系统运维速查/systemd 服务的文件句柄限制
服务与运维65 条

systemd 服务的文件句柄限制

高并发服务报 Too many open files 时改单元 LimitNOFILE:用 drop-in 单独放开并 daemon-reload 后重启;systemd 服务默认继承 PID1 的限制,需要显式配置。

信创系统运维速查系统更新于 2026-10-12

配置 drop-in

配置 drop-in
mkdir -p /etc/systemd/system/nginx.service.d
cat > /etc/systemd/system/nginx.service.d/10-limits.conf <<'EOF'
[Service]
LimitNOFILE=65535
LimitNPROC=65535
EOF
systemctl daemon-reload
systemctl restart nginx
systemctl show nginx -p LimitNOFILE
全局内核上限 fs.file-max 用 sysctl 调整(/etc/sysctl.d/99-filemax.conf);单元限制之外还要看这个全局值。

易错点

  • drop-in 文件名加数字前缀固定合并顺序,避免与其他覆盖片段冲突
  • 改完必须 daemon-reload + restart;验证用 systemctl show 看最终生效值,不要凭想象

数据来源与参考

  • man 5 systemd.exec(LimitNOFILE)
  • man 5 sysctl.d
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌