可能是全网最全的 ulimit 配置说明了

💡 原文中文,约2200字,阅读约需6分钟。
📝

内容提要

本文讨论了在 Debian 11 中正确设置 ulimit 的方法,强调需修改 /etc/systemd/system.conf 和 /etc/systemd/user.conf 文件以确保配置生效,同时调整 PAM 配置,特别是 /etc/security/limits.conf,注意通配符对 root 用户不生效。

🎯

关键要点

  • ulimit 设置不当可能导致问题,如 too many open files。

  • Debian 11 中,正确的 ulimit 设置需修改 /etc/systemd/system.conf 和 /etc/systemd/user.conf。

  • system.conf 适用于系统实例,user.conf 适用于用户实例。

  • 确保 ulimit 配置生效需要重启系统。

  • 通过 ssh 远程登录时,需检查 /etc/ssh/sshd_config 中的配置。

  • PAM 配置也需同步调整,主要涉及 /etc/security/limits.conf。

  • 通配符 '*' 对 root 用户不生效,需显式指定 root 用户的配置。

  • 用户也可以在 /etc/profile 和 bashrc 中修改 ulimit 设置。

  • 确保 systemd 和 PAM 的配置一致,以避免 ulimit 设置不生效。

🔎

延伸解读

ulimit 设置的重要性

不当的 ulimit 设置可能导致系统性能下降或应用程序崩溃,尤其是在高并发环境下。了解如何正确配置 ulimit 对于维护系统稳定性至关重要,尤其是在处理大量文件或进程时。

PAM 配置的影响

PAM 配置对 ulimit 的生效有直接影响,尤其是在远程登录时。确保 PAM 的相关配置与 systemd 一致,可以避免因配置不当导致的 ulimit 设置失效,特别是在使用 SSH 登录时。

root 用户的特殊性

在配置 ulimit 时,需注意通配符 '*' 对 root 用户不生效。为了确保 root 用户的限制生效,必须显式指定其配置。这一点常被忽视,可能导致系统管理员在调试时遇到困惑。

延伸问答

如何在 Debian 11 中正确设置 ulimit?

需要修改 /etc/systemd/system.conf 和 /etc/systemd/user.conf 文件,并确保配置一致,重启系统后生效。

为什么 ulimit 设置后仍然显示为 1024?

可能是因为 /etc/ssh/sshd_config 中的配置未正确设置,需要将相关行改为 no 并重启 sshd 服务。

PAM 配置如何影响 ulimit 设置?

PAM 配置需要同步调整,主要涉及 /etc/security/limits.conf 和相关的 PAM 文件,以确保 ulimit 设置一致。

通配符 '*' 在 ulimit 配置中对 root 用户有什么限制?

通配符 '*' 对 root 用户不生效,需要显式指定 root 用户的相关配置。

如何确认 ulimit 设置是否生效?

可以通过命令 cat /proc/${pid}/limits 来确认当前进程的 ulimit 设置。

用户如何在个人配置中修改 ulimit?

用户可以在 /etc/profile 和 bashrc 中显式修改 ulimit 设置。

🏷️

标签

➡️

继续阅读