关于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

相关推荐

  • grep命令和find命令的练习

    1、显示系统上root、Fedora、或user1用户的默认shell [root@localhost ~]# grep -E “^(root|fedora|user1)\>” /etc/passwd | cut -d: -f1,7 root:/bin/bash fedora:/bin/bash user1:/bin/bash 2、找出/etc/rc.…

    Linux干货 2017-07-30
  • 16 文本处理工具

    文本处理工具一 一、杂项知识整理 1、ps axo user,ruser,cmd 查看命令发起者的身份和真正的登录身份: [root@localhost test]# ps axo user,ruser,cmd USER     RUSER  &nb…

    Linux干货 2016-08-05
  • 马哥Linux第五周作业

    at,cron,rpm,yum,sed

    2018-01-12
  • 谷歌三大核心技术(三)Google BigTable中文版

    摘要 Bigtable是一个分布式的结构化数据存储系统,它被设计用来处理海量数据:通常是分布在数千台普通服务器上的PB级的数据。Google的很多项目使用Bigtable存储数据,包括Web索引、Google Earth、Google Finance。这些应用对Bigtable提出的要求差异非常大,无论是在数据量上(从URL到网页到卫星图像)还是在响应速度上…

    Linux干货 2015-04-13
  • Linux批量创建用户、passwd、shadow、组管理、group、gshadow、默认配置文件login.defs、切换用户su、提升权限(一)

    Linux批量创建用户、passwd、shadow、组管理、group、gshadow、默认配置文件login.defs、切换用户su、提升权限 在Linux中用户运行某个程序时,该程序的权限属于当前用户,进程所能够访问资源的权限取决于进程的运行者的身份。如果用户的id号为0,即使不叫root,他也是管理员;就算名字叫root它也可能是普通用户。当有多个不同…

    Linux干货 2016-08-03
  • linux终端类型

           关键词:linxu终端类型,串行端口终端,伪终端,控制终端,控制台终端,虚拟终端        摘要:终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。tty是Teletype的缩写。在Linux系统的设备特殊文件目录/dev/下,终端特殊…

    Linux干货 2016-10-19