> CentOS > CentOS运维 >

Centos6 修改max user processes limits

ulimit:显示(或设置)用户可以使用的资源的限制(limit),这限制分为软限制(当前限制)和硬限制(上限),其中硬限制是软限制的上限值,应用程序在运行过程中使用的系统资源不超过相应的软限制,任何的超越都导致进程的终止。

参数 描述
ulimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)
和可同时运行的最大进程数(max user processes)无效
-a 列出所有当前资源极限
-c 设置core文件的最大值.单位:blocks
-d 设置一个进程的数据段的最大值.单位:kbytes
-f Shell 创建文件的文件大小的最大值,单位:blocks
-h 指定设置某个给定资源的硬极限。如果用户拥有 root 用户权限,可以增大硬极限。任何用户均可减少硬极限
-l 可以锁住的物理内存的最大值
-m 可以使用的常驻内存的最大值,单位:kbytes
-n 每个进程可以同时打开的最大文件数
-p 设置管道的最大值,单位为block,1block=512bytes
-s 指定堆栈的最大值:单位:kbytes
-S 指定为给定的资源设置软极限。软极限可增大到硬极限的值。如果 -H 和 -S 标志均未指定,极限适用于以上二者
-t 指定每个进程所使用的秒数,单位:seconds
-u 可以运行的最大并发进程数
-v Shell可使用的最大的虚拟内存,单位:kbytes
-x

user processes: Linux itself has a Max Processes per user limit. This feature allows us to control the number of processes an existing user on the server may be authorized to have. ulimit -u是用来限制每个用户的最大processes数量。如果ulimit -u进行了限制那么每个linux用户可以派生出来的process就会被限制再这个数值之内。

通过ulimit命令来限制文件的大小,从而导致拷贝命令的失败

[root@localhost]ls temp.txt
ls: temp.txt: 没有那个文件或目录
[root@localhost]ulimit -f 1 #设置创建文件的最大块(一块=512字节)
[root@localhost]cat a.c > temp.txt
文件大小超出限制

文件a.c的大小是5002字节,而我们设定的创建文件的大小是512字节x1块=512字节


修改ulimit的数值,只需要修改/etc/security/limits.conf即可,但是-u这个参数需要修改/etc/security/limits.d/90-nproc.conf。
至于为什么需要修改这里,请看褚霸的这篇blog:http://blog.yufeng.info/archives/2568

centos 6.*可以修改/etc/security/limits.d/90-nproc.conf
但centos 5.*并没有90-nproc.conf这个文件,修改/etc/security/limits.conf,在最后添加

* soft nproc 65535
* hard nproc 65535

这个参数需要在mysqld启动之前调整,如果mysqld已经启动,再动态调整是无效的。
动态调整的方法:

echo -n ‘Max processes=SOFT_LIMITS:HARD_LIMITS’ > /proc/`pidof mysqld`/limits

通过如上命令就可以动态调整已经存在的mysqld的processes限制。

参考阿里云主机默认设置,修改/etc/security/limits.conf

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



(责任编辑:IT)