一、缘由:

  在启动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 # for reasoning.
* soft nproc
* 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  此用户允许登录的最大数目

[Linux] 关于Centos6中ulimit nproc用户进程数的限制的更多相关文章

  1. linux上限制用户进程数、cpu占用率、内存使用率

    限制进程CPU占用率的问题,给出了一个shell脚本代码如下: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > ...

  2. linux从用户组中删除某用户

    1. 从wheel组中删除 test用户 gpasswd wheel -d test 2. 给 目录赋予 其他组上传文件的权限 chmod a+w test

  3. nginx 中 ulimit 使用修改文件句柄数

    使用ulimit -a 可以查看当前系统的所有限制值, 使用ulimit -n<可以同时打开的文件数>设置用户可以同时打开的 最大文件数 linux系统默认的只要1024 当做负载较大的服 ...

  4. 如何在 Linux/Unix/Windows 中发现隐藏的进程和端口

    unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit.LKM 及其它技术隐藏的进程和 TCP/UDP 端口.这个工具在 Linux.UNIX 类.MS-Windows 等操作系统下 ...

  5. 优化mybatis框架中的查询用户记录数的案例

    通过对mybatis框架的中核心接口和类的分析,发现之前写的那个小demo是有问题的.现在对其进行部分优化. 如果存在多个功能的时候,势必会有很多重复的代码,如,创建sqlsession对象,关闭sq ...

  6. Linux 下监控用户最大进程数参数(nproc)是否到达上限

    Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤: 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因为 Linux 环境下执行多线 ...

  7. Linux 下监控用户最大进程数参数(nproc)是否到达上限的步骤:

    https://www.cnblogs.com/autopenguin/p/6184886.html 1.查看各系统用户的进程(LWP)数: 注意:默认情况下采用 ps 命令并不能显示出所有的进程.因 ...

  8. Linux中最大进程数和最大文件数

    前言 Linux系统中可以设置关于资源的使用限制,比如:进程数量,文件句柄数,连接数等等. 在日常的工作中应该遇到过: -bash: fork: retry: Resource temporarily ...

  9. linux 进程数

    一.linux系统支持的最大进程数 限制1:既然系统使用pid_t表示进程号,那么最大进程数不能超过pid_t类型的最大值吧 限制2:使用命令ulimit -u查看系统中限制的最大进程数,我的机器上是 ...

随机推荐

  1. C# 属性和字段的区别

    属性和字段的区别 在C#中,我们可以非常自由的.毫无限制的访问公有字段, 但在一些场合中,我们可能希望限制只能给字段赋于某个范围的值.或是要求字段只能读或只能写, 或是在改变字段时能改变对象的其他一些 ...

  2. Win10/UWP开发—凭据保险箱PasswordVault

    PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...

  3. ubuntu 安装Django MySQL

    1.安装步骤 我到公司的第一件事就是安装ubuntu系统,虽然我以前没有接触过ubuntu系统不过在网上找了一下资料感觉和安装其它系统也差不多(注:我是安装带图形界面的那个版本),还是比较轻松的搞定了 ...

  4. Python学习感悟

    学习任何新知识,我自己偏向于在实践中学习,这样效率更高:如果只是学习基本概念,会很枯燥. 现在的问题是:不是所有的新知识都可以在实践中学习!

  5. SQL 事务

    /*========================事务==============================*/begin tran--开始事务 --开始写流程语句 --语句写完之后if @@ ...

  6. win7 64位安装pygame

    需要的工具包 Python安装包 Pip安装包(版本无要求) Pygame安装包(版本需要与python匹配) http://jingyan.baidu.com/article/425e69e6ed3 ...

  7. Magento显示多货币,Magento 多货币设置

    System - Configuration - Currency Setup 在右边Currency Options里的Allowed currencies勾选, 然后 System - Manag ...

  8. TeeChart常用编程语句汇总(C#)

     我用的是C# 从网上看到资料拷贝过来备忘,共同学习下: 设置chart标题:axTChart1.Header.Text.Add("标题"); 修改标题:axTChart1.Hea ...

  9. declaration is incompatible with "__nounwind __interwork __softfp unsigned long __get_PSP(void)" IAR 编译报故障

    原因是以前的CMSIS  CORTEX-CM0 文件太老了.   使用新文件就可以.

  10. C++中的异常处理机制

    C++中的捕获异常机制catch参数中实参的类型不同,采取的处理方式则不相同,且与普通的函数调用还不一样,具体表现为当抛出异常throw A()或throw obj时,对象会进行一次额外的对象复制操作 ...