ulimit
命令在 CentOS 中用于控制 shell 进程及其子进程可以使用的系统资源限制。这些资源包括打开的文件描述符数量、进程数、CPU 时间等。ulimit
命令可以在命令行中临时设置这些限制,也可以在 shell 配置文件中永久设置。
ulimit [选项] [限制]
-a
:显示所有当前的资源限制。-c
:设置核心文件的最大大小(单位为 blocks)。-d
:设置进程的数据段大小(单位为 KB)。-f
:设置单个进程可以打开的文件描述符数量。-H
:设置硬限制(hard limit),即不允许超过的限制。-m
:设置进程可以使用的内存大小(单位为 KB)。-n
:设置单个进程可以打开的文件描述符数量(与 -f
类似,但更常用)。-p
:设置管道缓冲区的大小(单位为 512 字节)。-s
:设置栈的大小(单位为 KB)。-t
:设置进程可以使用的 CPU 时间(单位为秒)。-u
:设置用户可以创建的最大进程数。-v
:设置进程可以使用的虚拟内存大小(单位为 KB)。-x
:设置单个进程可以使用的最大内存地址空间(单位为 KB)。查看当前资源限制
ulimit -a
设置单个进程可以打开的文件描述符数量为 2048
ulimit -n 2048
设置用户可以创建的最大进程数为 1024
ulimit -u 1024
设置进程可以使用的 CPU 时间为 3600 秒(1 小时)
ulimit -t 3600
设置进程可以使用的内存大小为 512 MB
ulimit -v 524288
ulimit
命令设置的资源限制只在当前 shell 会话中有效。要永久设置资源限制,可以在用户的 shell 配置文件中添加相应的 ulimit
命令。常见的配置文件包括:
~/.bashrc
:适用于 Bash shell。~/.bash_profile
:适用于登录 shell。/etc/security/limits.conf
:适用于所有用户。例如,在 ~/.bashrc
文件中添加以下行:
ulimit -n 2048
ulimit -u 1024
然后重新加载配置文件:
source ~/.bashrc
或者重新登录 shell。
/etc/security/limits.conf
文件中设置资源限制时,需要使用用户名或用户组名,并且格式为 username hard limit
或 groupname hard limit
。通过合理使用 ulimit
命令,可以有效地管理和优化系统资源的使用,防止资源耗尽导致的系统问题。