• [Linux] 关于Centos6中ulimit nproc用户进程数的限制


    一、缘由:

      在启动mongodb的时候,有Warning提示soft rlimits too low,就是用户使用进程数过小,遂调高系统资源关于用户最大进程数的限制ulimit -u。

    先暂时使设置生效,ulimit -u 102400,提示: ulimit: max user processes: cannot modify limit: Operation not permitted。

    修改/etc/security/limits.conf 为 * soft nproc 102400,退出shell后重新登陆,依然不行。后经Google是/etc/security/limits.d/90-nproc.conf

    的限制,在Centos 6中。

    二、解决办法:

      文件90-nproc.conf中由此解释Default limit for number of user's processes to prevent,可见这个文件默认用来限制用户拥有的最大进程数量。

     经查看,每个用户(*)的nproc被限制为65535,故设置100000超过系统最大用户进程数限制。

    # Default limit for number of user's processes to prevent
    # accidental fork bombs.
    # See rhbz #432903 for reasoning.
        * soft nproc 65535
        * hard nproc 65535  

       故需要修改90-nproc.conf为 soft nproc 100000,重新登录后即可生效。

      或者,如果只是相对某个单个用户进行限制更改,可以修改/etc/security/limits.conf,将*改成具体用户名也是可以生效的。

    比如:

      mongod soft nproc 100000
      mongod hard nproc 100000

    注:楼主曾尝试在90-nproc.conf中设置nofile的值,也是可以生效的,系统以他为标准;但是不建议这么设置。

    三、关于linux下用户资源限制limits.conf详解

      1、limits.conf文件实际上是linux PAM(认证模块)中pam_limits.so的配置文件,而且只针对单个会话。

      2、要使limits.conf文件配置生效,必须确保pam_limits.so文件被加入启动文件中。要查看/etc/pam.d/login文件中有session required /lib/security/pam_limits.so

    limits.conf文件格式如下:

    <domain>  <type>  <item>  <value>

      domain有好几种格式,具体可以用cat limits.conf来查看,不过一般来说,我们都是用的用户名和组名的形式:username|@groupname

      设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有的限制。

      type:有soft,hard和-,soft指的是当前系统生效的设置值,软限制也可以理解为警告值。hard表名系统中所能设定的最大值。soft的限制不能比hard限制高,

         用 - 表明同时设置了soft和hard的值。

      item表明需要限制的使用资源类型

      core  限制内核文件的大小

      data  最大数据大小

      fsize  最大文件大小

      memlock  最大锁定内存地址空间

      nofile  打开文件的最大数目

      rss  最大持久设置大小

      stack  最大栈大小

      cpu  以分钟为单位的最多CPU时间

      noproc 进程的最大数目

      as  地址空间限制

      maxlogins  此用户允许登录的最大数目

  • 相关阅读:
    JAVA运维总结篇
    python-30个骚操作
    seaweedfs文件存储服务器搭建
    Linux下nginx配置https协议访问
    微信公众平台应用号开发教程
    指导新人的一些心得
    <Android 基础(二十一)> Android 屏幕适配
    Java基础之引用(String,char[],Integer)总结于牛客网的专项练习题
    匿名内部类中关于new Runnable()的使用
    Java中的数据类型转换
  • 原文地址:https://www.cnblogs.com/langdashu/p/6015101.html
Copyright © 2020-2023  润新知