关于 linux ulimit 限制 noproc 问题
ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。
关于RHEL6中ulimit的nproc限制,RHEL6和RHEL5还是有一些细节上的区别的:
当前shell下更改用户可打开进程数
作为临时限制,ulimit可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他shell 会话。
修改limits.conf配置文件生效
[root@kumu ~]# ulimit -a //查看当前配置文件ulimit全局系数
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 1829
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 10240
cpu time (seconds, -t) unlimited
max user processes (-u) 1024
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
[root@kumu ~]# vim /etc/security/limits.conf
[root@kumu ~]# grep ‘^*‘ /etc/security/limits.conf
* soft nproc 10240
* hard nproc 10240
* soft nofile 10240
* hard nofile 10240
[root@kumu ~]#
[root@kumu ~]# ulimit -n
10240
[root@kumu ~]# ulimit -u //发现nproc并没有像nofile一样而改变
1024
[root@kumu ~]#
[root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user‘s processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
*soft nproc 1024
[root@kumu ~]#
[root@kumu ~]# vim /etc/security/limits.d/90-nproc.conf
[root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user‘s processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
#*soft nproc 1024
*soft nproc 65535
[root@kumu ~]#
[root@kumu ~]# ulimit -u
10240
[root@kumu ~]# ulimit -n
10240
[root@kumu ~]#
由此可知,如果要修改配置文件limits.conf中的nproc限制上限是受文件/etc/security/limits.d/90-nproc.conf中nproc值大小制约的,但是shell终端下是不受制约的
[root@kumu ~]# vim /etc/security/limits.d/90-nproc.conf //恢复系统默认设置
[root@kumu ~]# cat /etc/security/limits.d/90-nproc.conf
# Default limit for number of user‘s processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.
*soft nproc 1024
#*soft nproc 65535
[root@kumu ~]# vim /etc/security/limits.conf //只针对某个用户测试(这里使用root)
[root@kumu ~]# grep ‘^root‘ /etc/security/limits.conf
root soft nproc 10240
root hard nproc 10240
[root@kumu ~]#
[root@kumu ~]# ulimit -u
10240
[root@kumu ~]# ulimit -n
10240
[root@kumu ~]#
===============================================================================
先读/etc/security/limits.conf,如果/etc/security/limits.d/目录下还有配置文件的话,也读进来,一起分析。
这就意味/etc/security/limits.d/里面的文件里面的配置会覆盖/etc/security/limits.conf的配置。
读取/etc/security/limits.d/目录下文件的函数,从名字就可以猜出,是遍历,文件名的数字起到顺序的作用。
到此就解释了文件名90-nproc.conf的作用。
======================================================================================================
深度探究ulimit noproc请参考下面链接:
http://csrd.aliapp.com/?p=1760
是淘宝的褚霸写的,我觉得写得真心不错,可以深度探究一下;
======================================================================================================
本文出自 “林纳斯 托瓦兹” 博客,请务必保留此出处http://wz102.blog.51cto.com/3588520/1393970
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。