跳到主要内容

配置 limits.conf

本文介绍如何通过配置 limits.conf 限制进程数量。

如果您是个人用户,您可以跳过此步骤。如果您是企业用户,建议配置 limits.conf

修改资源限制可通过如下方法:

通过配置文件 /etc/security/limits.conf 在全局级别修改。

seekdb 的进程涉及的限制包括线程最大栈空间大小(Stack)、最大文件句柄数(Open Files)和 core 文件大小 (Core File Size)。

更改配置

将会话级别的最大栈空间大小设置为 unlimited,最大文件句柄数设置为 655350,Core 文件大小设置为 unlimited

执行以下命令,打开 /etc/security/limits.conf 配置文件:

sudo vim /etc/security/limits.conf

/etc/security/limits.conf 配置文件中添加以下内容:

* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
信息
  • 您需查看 /etc/security/limits.d/20-nproc.conf 文件中是否存在 nproc 的配置,若存在需同步修改该文件中 nproc 的值。
  • limits.conf 的配置仅对新登录的会话生效(如新打开的终端、SSH 连接或新启动的进程)。当前已存在的会话或进程不会自动继承新配置,需要重新登录或重启相关服务。

查看配置

退出当前会话,重新登录。执行以下命令,查看配置是否生效。

ulimit -a

输出如下。

core file size          (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 252876
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 655350
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 655360
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited

从结果中可以看出:

  • core file size 表示核心文件的最大阈值(以块为单位),对应 limits.conf 配置文件中的 core 参数,需查看值是否为 unlimited。

  • open files 表示最大打开文件描述符数,对应 limits.conf 配置文件中的 nofile 参数,需查看值是否为 655350。

  • stack size 表示堆栈大小(以千字节为单位),对应 limits.conf 配置文件中的 stack 参数,需查看值是否为 unlimited。

  • max user processes 表示最大用户进程数,对应 limits.conf 配置文件中的 nproc 参数,需查看值是否为 655360。