HCRM博客

如何调整CentOS系统中的ulimit设置以提高性能?

CentOS中的ulimit是一个用于控制Shell程序及其子进程资源使用的限制工具,它允许用户查看和设置各种系统资源的软硬限制,包括打开的文件数、最大用户进程数等,以下是对CentOS系统中ulimit的详细解释:

ulimit的基本概念

如何调整CentOS系统中的ulimit设置以提高性能?-图1
(图片来源网络,侵权删除)

1、ulimit命令

用于显示和设置登录用户的资源限制。

支持多种类型的资源限制,如文件大小、数据段大小、内存锁住的大小、打开文件描述符的数量等。

2、软硬限制

软限制(soft limit):是管理员所设下的限制,可以增加但不能超过硬限制。

硬限制(hard limit):一旦设置不能增加,是系统强制的最大值。

如何调整CentOS系统中的ulimit设置以提高性能?-图2
(图片来源网络,侵权删除)

3、常用参数

S:设置软资源限制。

H:设置硬资源限制。

a:显示当前所有的资源限制。

c:设置core文件的最大值,单位为blocks

d:设置数据段的最大值,单位为Kbytes。

如何调整CentOS系统中的ulimit设置以提高性能?-图3
(图片来源网络,侵权删除)

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发行版,请参考相应的文档进行操作,在进行任何系统配置更改之前,请确保备份相关文件以防万一。

分享:
扫描分享到社交APP
上一篇
下一篇