1. 描述
Linux 系统中可以设置关于资源的使用限制,比如:进程数量,文件句柄数,连接数等等。
在使用 Linux 系统时,若切换 root 用户为普通用户,可能出现 Resource temporarily unavailable 报错,这是由于当前用户的进程数超出限制。因此需要手动修改 Linux 系统的最大进程数。
2. 关键值
nproc:表示 max number of processes,是操作系统级别对每个用户创建的进程数的限制。
nofile:表示 max number of open file descriptors,每个进程可以打开的文件数的限制。
hard/soft:soft 是一个警告值,而 hard 则是一个真正意义的阀值,超过就会报错。
3. 修改方法
3.1 查看当前用户打开的最大进程数
1)在 Linux 终端执行命令 ulimit -a
查看 max user processes :即系统限制某用户下最多可以运行多少进程或线程。如下图所示:
2)也可在 Linux 终端执行命令 ulimit -u。
3.2 使用 root 用户登录。
方法一:
进入 /etc/security/limits.conf 文件下,增加如下代码,并保存:
roxy soft nproc 10240
roxy hard nproc 10240
roxy soft nofile 10240
roxy hard nofile 10240
注:roxy 为需要修改线程数的用户名,10240 为设置的进程数和文件数限制,可根据需要修改。
方法二:
1)进入 /etc/security/limits.conf 文件下,增加如下代码,并保存:
* soft nproc 10240
* hard nproc 10240
注:* 表示对所有用户都生效。
2)进入 /etc/security/limits.d/xx-nproc.conf 文件下,增加如下代码,并保存:
* soft nproc 10240
注:1. 10240 为设置的进程数和文件数限制,可根据需要修改。
注:2. cemtos6 需修改的文件路径为 /etc/security/limits.d/90-nproc.conf ,CentOS7 需修改的文件路径为 /etc/security/limits.d/20-nproc.conf 。
3.3 再次登录超过线程限制的用户
在终端执行 ulimit -a,即可查看修改后系统限制某用户下最多可以运行多少进程或线程。