关于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 21:06
下一篇 2016-10-19 21:42

相关推荐

  • centos6启动故障及修复

    前言 前文中我们熟悉了linux的启动流程,如果在启动过程中文件丢失或者损坏了怎么办呢?难道只有重装系统这一条路吗?那我们不是成了普通网管了吗?作为专业的运维工程师,我们需要掌握如何快速修复系统启动。 实验1: 破坏/boot/grup/下的文件——-stage2 阶段  不影响启动  mv /boot/grub …

    2017-09-03
  • httpd 2.2(Apache Web服务器)

    apache (Web服务器) 简介: Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。    Apache HTTP服务器是一个模块化的服…

    Linux干货 2016-03-30
  • Linux基础学习总结(二)

    经过前两周的学习,我们大家对于Linux系统和操作已经有了一定的认识。基于Linux平台进行开发,确实要更方便和高效,我经过自己的学习消化,现在将自己的理解的几点总结下来: Linux哲学思想的几句话,简洁的阐明了linux系统的特点。其中一切都是一个文件这句话特别精辟,在实际学习和操作linux系统之后,更是深刻体会到了这句话的内涵,感受颇深。它具体指明了…

    Linux干货 2018-03-16
  • linux学习心得

    Linux学习心得 之前没怎么了解过linux运维,机缘巧合来到了这里,刚刚开始一脸蒙圈,或者说现在仍然是,不过最大的收获是我在这里真正认真学习了,有了一个端正的态度,一切都是好的开始。 这一周,我学习了linux的发展史,如何安装系统,一些简单的命令等。。。。下面我一一介绍一下,初学者,可能简单粗暴,多多指教! 系统安装: 1:首先用光盘进行linuxIS…

    2017-07-16
  • 8月22日shell脚本编程之循环和函数

    shell脚本编程 本章内容 编程基础 脚本基本格式 变量 运算 条件测试 流程控制 函数 数组 高级字符串操作 高级变量 配置用户环境 编程基础 程序:指令+数据 编程程序风格:   过程式:以指令为中心,数据服务于指令   对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方…

    Linux干货 2016-08-24
  • 文件查找工具locate和find的使用分析

    文件查找工具locate和find的使用分析 不管是在windows系统中还是在Linux系统中,我们经常会一些文件进行搜索查找,而在Linux系统中经常用到的搜索工具有locate和find,这两种搜索工具的工具原理和用法都不相同,一下将这对这两种搜索工具的使用进行分析。 1、locate工具的工作原理是对/var/lib/mlocate/mlocat.d…

    Linux干货 2016-08-18