CentOS ulimit资源限制有哪些

731
2025/4/8 18:32:43
栏目: 智能运维
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS系统中,ulimit命令用于设置和查看shell会话对用户进程的资源限制。以下是一些常见的ulimit资源限制及其设置方法:

常见的ulimit资源限制

  • 打开文件描述符数量(nofile):限制进程可以打开的最大文件数。
  • 最大进程数量(nproc):限制用户可以启动的最大进程数。
  • 核心文件大小(core file size):限制core文件的最大大小。
  • 内存锁定大小(max locked memory):限制进程可以锁定的最大内存量。
  • CPU时间(CPU time):限制进程可以使用的最大CPU时间。
  • 进程数(processes):限制用户可以启动的最大进程数。
  • 虚拟内存大小(virtual memory):限制进程可以使用的最大虚拟内存量。
  • 堆栈大小(stack size):限制线程堆栈的最大大小。

如何设置ulimit资源限制

临时设置

在终端中使用ulimit命令可以临时设置资源限制,这些设置只对当前shell会话有效,关闭终端后失效。例如:

ulimit -n 65535  # 设置打开文件描述符数量为65535
ulimit -u 4096   # 设置最大进程数为4096

永久设置

要永久设置资源限制,需要修改系统配置文件。对于CentOS 7及以上版本,主要涉及以下文件:

  • /etc/security/limits.conf:用于设置全局资源限制。
  • /etc/security/limits.d/20-nproc.conf:用于设置用户进程数限制。
  • /etc/systemd/system.conf/etc/systemd/user.conf:用于设置systemd服务的资源限制。

例如,在limits.conf中添加以下行可以设置所有用户的最大文件描述符数量和最大进程数:

* soft nofile 65535
* hard nofile 65535
* soft nproc 4096
* hard nproc 4096

修改后,通常需要重启系统或重新登录才能使更改生效。

针对systemd服务的设置

对于systemd服务,可以在服务的配置文件中设置资源限制。例如,在nginx.service文件中添加:

[Service]
LimitNOFILE=65535
LimitNPROC=4096

修改后,需要运行以下命令使更改生效:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service

注意事项

  • 在CentOS 7及以上版本中,/etc/security/limits.conf对systemd服务的资源限制可能不生效,需要使用/etc/systemd/system.conf/etc/systemd/user.conf进行配置。
  • 修改配置文件后,可能需要重启系统或重新登录才能使更改生效。
  • 对于系统级别的限制,可能需要root权限进行修改。

通过上述方法,可以有效地管理和配置CentOS系统中的ulimit资源限制,以满足不同应用场景的需求。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: 如何在CentOS上配置C++库文件