CentOS中的ulimit是一个用于控制Shell程序及其子进程资源使用的限制工具,它允许用户查看和设置各种系统资源的软硬限制,包括打开的文件数、最大用户进程数等,以下是对CentOS系统中ulimit的详细解释:
ulimit的基本概念
1、ulimit命令:
用于显示和设置登录用户的资源限制。
支持多种类型的资源限制,如文件大小、数据段大小、内存锁住的大小、打开文件描述符的数量等。
2、软硬限制:
软限制(soft limit):是管理员所设下的限制,可以增加但不能超过硬限制。
硬限制(hard limit):一旦设置不能增加,是系统强制的最大值。
3、常用参数:
S
:设置软资源限制。
H
:设置硬资源限制。
a
:显示当前所有的资源限制。
c
:设置core文件的最大值,单位为blocks。
d
:设置数据段的最大值,单位为Kbytes。
f
:设置创建文件的最大值,单位为blocks。
l
:设置在内存中锁定进程的最大值,单位为Kbytes。
m
:设置可以使用的常驻内存的最大值,单位为Kbytes。
n
:设置内核可以同时打开的文件描述符的最大值。
p
:设置管道缓冲区的最大值,单位为Kbytes。
s
:设置堆栈的最大值,单位为Kbytes。
t
:设置CPU使用时间的最大上限,单位为seconds。
u
:设置用户最多可开启的程序数目。
v
:设置虚拟内存的最大值,单位为Kbytes。
x
:设置最大的文件锁数量。
CentOS 7及更高版本中的ulimit配置
在CentOS 7及更高版本中,由于引入了Systemd,ulimit的配置方式与之前有所不同,以下是详细的配置步骤:
1、查看当前ulimit配置:
使用ulimit a
命令查看当前所有资源限制。
2、修改配置文件:
对于通过PAM认证登录的用户,可以通过修改/etc/security/limits.conf
和/etc/security/limits.d/
目录下的配置文件来设置资源限制。
对于systemd服务的资源限制,需要修改/etc/systemd/system.conf
和/etc/systemd/user.conf
以及它们对应的目录中的配置文件。
3、具体修改示例:
修改普通用户和root的最大打开文件数和最大用户进程数,可以将以下内容添加到/etc/security/limits.d/20nproc.conf
文件中:
* soft nproc 65535 root soft nproc unlimited * hard nproc 65535 root hard nproc unlimited * soft nofile 65535 root soft nofile 65535 * hard nofile 65535 root hard nofile 65535
修改systemd的全局配置,可以在/etc/systemd/system.conf
中添加以下内容:
DefaultLimitCORE=infinity DefaultLimitNOFILE=100000 DefaultLimitNPROC=100000
4、使修改生效:
对于/etc/security/limits.conf
和/etc/security/limits.d/
中的修改,需要重启系统或重新登录用户才能生效。
对于systemd的修改,需要执行systemctl daemonreload
命令重新加载配置。
FAQs
1、如何查看当前系统的ulimit配置?
你可以使用ulimit a
命令来查看当前系统的所有资源限制,这将列出包括文件大小、数据段大小、打开文件数、最大用户进程数等在内的各种资源限制。
2、如何在CentOS 7中永久修改ulimit配置?
对于通过PAM认证登录的用户,你可以通过修改/etc/security/limits.conf
和/etc/security/limits.d/
目录下的配置文件来实现永久修改,对于systemd服务的资源限制,你需要修改/etc/systemd/system.conf
和/etc/systemd/user.conf
以及它们对应的目录中的配置文件,完成修改后,需要执行systemctl daemonreload
命令重新加载配置,或者重启系统或重新登录用户以使修改生效。
信息基于CentOS 7及更高版本的操作系统,如果你使用的是其他版本的CentOS或不同的Linux发行版,请参考相应的文档进行操作,在进行任何系统配置更改之前,请确保备份相关文件以防万一。