ulimit的最初设计是为了限制进程对资源的使用情况,因为早期的CPU,内存都是有限的,为了保持每个进程都能使用,下图是系统默认的设置
默认句柄只有1024,这对于web类的服务器,数据库类的应用程序是太小了
ulimit有几种使用方法:
(1)在用户环境变量中加入
例如用户使用的bash,那么就可以在用户的环境目录.bashrc或.bash_profile中加入 ulimit -u 200来设置用户的进程数最多使用200
(2)在应用程序的启动脚本中加入
如果是启动Tomcat,则可以在startup.sh脚本中加入ulimit -u 65535来限制用户最多可以使用65535个文件描述符
(3)在shell终端设置limit命令
直接在当前shell终端设置ulimit,退出shell终端失效
为了方便起见,也可以将用户资源的限制统一有一个文件来配置,这个文件就是/etc/security/limits.conf 该文件不仅能对指定用户的资源进程限制,还能对指定的组的资源进程限制
除了limits.conf文件之外,还有一个/etc/security/limits.d的目录,可以将资源限制创建一个文件放到这个目录下,因为,系统默认会先读取limits.conf文件,在所有资源限制设置完成后,退出shell终端,再次登录shell终端后,ulimit设置生效
在limits.d目录下,系统会首先读取该目录下的文件,所以,默认的nproc.conf会覆盖之前/etc/security/limits.conf 的设置,为了使设置的生效
(1)修改nproc.conf的配配置
(2)注释nproc.conf的内容 或者删掉nproc.conf
查看一个用户创建多少个进程?
根据查出来的进程数,根据实际进行调整