设为首页 收藏本站
查看: 653|回复: 0

[经验分享] 关于 linux ulimit 限制 noproc 问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-4-11 23:35:56 | 显示全部楼层 |阅读模式
本帖最后由 4rr 于 2014-4-11 23:36 编辑

ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小、进程数据块的大小、Shell 进程创建文件的大小、内存锁住的大小、常驻内存集的大小、打开文件描述符的数量、分配堆栈的最大大小、CPU 时间、单个用户的最大线程数、Shell 进程所能使用的最大虚拟内存。同时,它支持硬资源和软资源的限制。
关于RHEL6中ulimit的nproc限制,RHEL6和RHEL5还是有一些细节上的区别的:
当前shell下更改用户可打开进程数
作为临时限制,ulimit可以作用于通过使用其命令登录的 shell 会话,在会话终止时便结束限制,并不影响于其他shell 会话。
161512432.png
修改limits.conf配置文件生效
[iyunv@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
[iyunv@kumu ~]# vim /etc/security/limits.conf
[iyunv@kumu ~]# grep '^*' /etc/security/limits.conf
*       soft    nproc       10240
*       hard    nproc       10240
*       soft    nofile      10240
*       hard    nofile      10240
[iyunv@kumu ~]#


退出当前用户,重新登录即可让之前修改的limits生效
[iyunv@kumu ~]# ulimit -n
10240
[iyunv@kumu ~]# ulimit -u         //发现nproc并没有像nofile一样而改变
1024
[iyunv@kumu ~]#


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

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


我们修改这个文件尝试是否因为该文件影响,修改如下
[iyunv@kumu ~]# vim /etc/security/limits.d/90-nproc.conf
[iyunv@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
[iyunv@kumu ~]#


退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功
[iyunv@kumu ~]# ulimit -u
10240
[iyunv@kumu ~]# ulimit -n
10240
[iyunv@kumu ~]#


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

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

[iyunv@kumu ~]# vim /etc/security/limits.d/90-nproc.conf   //恢复系统默认设置
[iyunv@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
[iyunv@kumu ~]# vim /etc/security/limits.conf       //只针对某个用户测试(这里使用root)
[iyunv@kumu ~]# grep '^root' /etc/security/limits.conf
root        soft    nproc       10240
root        hard    nproc       10240
[iyunv@kumu ~]#


退出当前用户,重新登录即可让之前修改的limits生效,执行如下命令发现修改成功
[iyunv@kumu ~]# ulimit -u
10240
[iyunv@kumu ~]# ulimit -n
10240
[iyunv@kumu ~]#



===============================================================================
先读/etc/security/limits.conf,如果/etc/security/limits.d/目录下还有配置文件的话,也读进来,一起分析。
这就意味/etc/security/limits.d/里面的文件里面的配置会覆盖/etc/security/limits.conf的配置。
读取/etc/security/limits.d/目录下文件的函数,从名字就可以猜出,是遍历,文件名的数字起到顺序的作用。
到此就解释了文件名90-nproc.conf的作用。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-17219-1-1.html 上篇帖子: warning: waiting for transaction lock on /var/lib/rpm/__db.000 的解决方法 下篇帖子: linux下的定时任务 linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表