关于RHEL6中ulimit的nproc限制

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。

Linux文件描述符可参见笔者之前的文章:http://kumu1988.blog.51cto.com/4075018/1086210

关于RHEL6中ulimit的nproc限制,RHEL6和RHEL5还是有一些细节上的区别的:

当前shell下更改用户可打开进程数 

作为临时限制,ulimit可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他shell 会话。

关于RHEL6中ulimit的nproc限制

修改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 ~]#

 退出当前用户,重新登录即可让之前修改的limits生效

[root@kumu ~]# ulimit -n

10240

[root@kumu ~]# ulimit -u         //发现nproc并没有像nofile一样而改变

1024

[root@kumu ~]#

 经google搜索获知,RHEL6下引入了配置文件/etc/security/limits.d/90-nproc.conf

(参见了@杨德华Devin 文章redhat5 redhat6 root用户不同的ulimits

[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 ~]#

 退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功

[root@kumu ~]# ulimit -u

10240

[root@kumu ~]# ulimit -n

10240

[root@kumu ~]#

 

由此可知,如果要修改配置文件limits.conf中的nproc限制上限是受文件/etc/security/limits.d/90-nproc.confnproc值大小制约的,但是shell终端下是不受制约的

 另外笔者猜想,如果使用*号让全局用户生效是受文件/etc/security/limits.d/90-nproc.confnproc值大小制约的,而如果仅仅是针对某个用户,那么就不受该文件nproc值大小的影响 

[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 ~]#

 退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功

[root@kumu ~]# ulimit -u

10240

[root@kumu ~]# ulimit -n

10240

[root@kumu ~]#

 

笔者之前猜想正确,即只有当使用*号让全局用户生效的时候,生效的nproc的值大小是受文件/etc/security/limits.d/90-nproc.confnproc值大小制约的,而如果仅仅是针对某个用户,那么就不受该文件nproc值大小的影响。

原创文章,作者:wencx,如若转载,请注明出处:http://www.178linux.com/52952

(0)
wencxwencx
上一篇 2016-10-19
下一篇 2016-10-19

相关推荐

  • 操作系统—Systemd

    Systemd 概述:       CentOS 6和之前版本采用SysVinit的系统启动进程管理体系,一般用户都可通过在/etc/inittab文件的配置,来个性化自己的系统启动序列。但也经常会由于特殊环境的硬件等关系问题,造成其串行的启动进程控制流,因为可能任务的阻塞而影响启动过程。     &nbsp…

    Linux干货 2016-09-24
  • 马哥教育网络班21期+第11周课程练习

    1、详细描述一次加密通讯的过程,结合图示最佳。 单向加密:只能加密,不能解密,提取数据指纹(特征码),来保证数据的完整性,如上图的第二步,单向加密的协议有MD5,SHA等 非对称加密:公钥和私钥成对出现,私钥必须本机器保存,用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然,数字签名是私钥加密特征码,如上图的第三步;实现对称秘钥交换,如上图第五步 对称…

    Linux干货 2016-08-15
  • 第一天作业

    一、计算机的组成部分         现代计算机的组成是根据冯.诺依曼体系,包括5大部件存储器、控制器、运算器、输入设备和输出设备。             1.存储器包括内部存储器和外部存储器;内部存储器包括内部硬盘、内存、缓存等,外部存储器包括移动硬盘、光…

    Linux干货 2016-08-15
  • iptables基本知识

    1)Linux下的防火墙概念 a、一般谈到Linux下的防火墙,我们都会首先想到iptables,其实更确切的叫法应该是Netfilter/iptables,iptables和Netfilter其实是存在差别的。 b、尽管它们经常被用来相互替换使用,Netfilter是用来实现Linux内核中防火墙的Linux内核空间程序代码段,它要么被直接编译进内核,要么…

    Linux干货 2016-07-16
  • Linux文件系统简介

    文件系统是Linux的十分基础的知识,同时也是学习Linux必不可少的知识。本文将简单的介绍一下Linux的文件系统,主要包括FHS文件层级结构、Linux的文件类型及对应的颜色标识、man帮助手册页以及命令编辑特性的快捷键的介绍。这仅仅是属于自己的一个总结,以后会对深入学习Linux有一定的帮助吧。 如有不对之处还请帮忙指出。 FHS文件层级结构 FHS(…

    Linux干货 2016-10-19
  • 文件通配符是啥?

    文件通配符     包含 ‘?’, ‘*’ 或 ‘[‘ 字符的字符串称为通配符模板(wildcard  pattern).形成路径名(globbing)指一种操作,把通配符模板展开为匹配该串的路径名.匹配定义为:   …

    Linux干货 2017-04-23