<ol><li>ulimit是linux中用于控制用户或进程资源使用的机制,分为软限制(实际生效)和硬限制(软限制上限,仅root可提升);2. 临时设置通过ulimit命令实现,如ulimit -n 1024设置最大打开文件数,仅当前会话有效;3. 永久配置需修改/etc/security/limits.conf或/etc/security/limits.d/*.conf,格式为<domain> <type> <item> <value>,支持用户、组、通配符配置;4. 配置生效需系统启用pam_limits.so模块,且通过支持的登录方式(如ssh、本地终端)重新登录;5. systemd服务不读取limits.conf,需在服务单元文件中使用limitnofile等参数或修改systemd.conf全局设置;6. 验证可通过ulimit -a查看用户限制,或cat /proc/<pid>/limits查看具体进程;7. 注意su需使用su - username以触发pam加载,图形界面和容器环境可能不适用limits.conf,应避免盲目设置unlimited以防资源耗尽。合理配置需结合pam、systemd及实际场景,确保系统稳定性与安全性。</li></ol>

在 Linux 系统中,
ulimit
ulimit
ulimit
-n
-u
-v
-s
-t
-f
每个资源有 软限制(soft limit) 和 硬限制(hard limit):
普通用户只能降低或在硬限制范围内调整软限制,root 用户可以修改两者。
在终端中使用
ulimit
# 查看所有限制 ulimit -a # 设置最大打开文件数为 1024(软限制) ulimit -n 1024 # 设置硬限制(需 root) ulimit -Hn 2048 # 设置软限制 ulimit -Sn 1024
⚠️ 注意:这种方式只对当前 shell 及其子进程有效,重启后失效。
要实现永久生效,需修改
/etc/security/limits.conf
/etc/security/limits.d/*.conf
<domain> <type> <item> <value>
soft
hard
both
-
nofile
nproc
unlimited
# 用户 alice 最多打开 4096 个文件 alice soft nofile 4096 alice hard nofile 8192 # 所有用户最大进程数限制 * soft nproc 1024 * hard nproc 2048 # 组 users 限制内存使用 @users hard as 1048576 # 1GB (单位 KB) # root 用户特殊权限 root soft nofile 65536 root hard nofile 65536 # 同时设置软硬限制 * - memlock unlimited
| item | 含义 | 单位 |
|---|---|---|
| @@######@@ | 打开文件描述符数 | 个 |
| @@######@@ | 用户可创建的最大进程数 | 个 |
| @@######@@ | 地址空间(虚拟内存) | KB |
| @@######@@ | 单个文件最大大小 | KB |
| @@######@@ | 锁定内存大小 | KB |
| @@######@@ | CPU 时间(分钟) | 分钟 |
| @@######@@ | 栈大小 | KB |
并非所有登录方式都会自动加载
nofile
PAM 模块启用
系统必须启用
nproc
as
应包含一行:
fsize
登录方式支持
重启或重新登录生效
修改后需重新登录用户才能生效(不能仅 source 或新开子 shell)。
现代系统使用 systemd 时,服务的资源限制由 systemd 控制,不读取 memlock
需在服务单元文件中设置,例如:
cpu
或全局设置
stack
limits.conf
修改后运行:
pam_limits.so
切换到目标用户:
/etc/pam.d/common-session /etc/pam.d/sshd /etc/pam.d/login
查看限制:
session required pam_limits.so
或查看进程限制(需知道 PID):
limits.conf
[Service] LimitNOFILE=8192 LimitNPROC=4096 LimitAS=infinity LimitSTACK=8192
基本上就这些。合理配置
/etc/systemd/system.conf
DefaultLimitNOFILE=65536 DefaultLimitNPROC=32768
systemctl daemon-reexec systemctl daemon-reload
su - username
ulimit -a
cat /proc/<PID>/limits
su - username
ulimit
以上就是如何限制用户资源 ulimit系统限制配置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号