[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  此用户允许登录的最大数目

时间: 2024-10-12 23:02:13

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

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

限制进程CPU占用率的问题,给出了一个shell脚本代码如下: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'` 其中用到ps获取进程信息,其实 ps中%CPU一列的意义是进程实际占有CPU时间和它存活时间的比值,这个值能反应进程对CPU的消耗,但不能准确反应进程所占CPU时间占整个系统CPU的百分比. 而top输出中的%CPU这一列正是进程所占CPU时间占整个系统CPU的百分比,用于

修改操作系统句柄数和用户进程数

对于一般的应用来说(像Apache.系统进程)1024完全足够使用.但是像squid.mysql.java等单进程处理大量请求的应用来说就有点捉襟见肘了.如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到"too many files open"的错误提示.怎么查看当前进程打开了多少个文件句柄呢? lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more 在系统访问高峰时间以root用户执行上面的脚本,可能出现的结果如下: #

Linux中如何解除最大进程数和最大文件句柄打开数限制?

本文和大家分享的主要是linux中解除最大进程数和最大文件句柄打开数限制相关内容,一起来看看吧,希望对大家学习linux有所帮助. ulimit用于shell启动进程所占用的资源 1.语法格式: ulimit [-acdfHlmnpsStvw] [size] 2.参数介绍: -H 设置硬件资源限制. -S 设置软件资源限制. -a 显示当前所有的资源限制. -c size:设置core文件的最大值.单位:blocks -d size:设置数据段的最大值.单位:kbytes -f size:设置创

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

unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit.LKM 及其它技术隐藏的进程和 TCP/UDP 端口.这个工具在 Linux.UNIX 类.MS-Windows 等操作系统下都可以工作.根据其 man 页面的说明: Unhide 通过下述三项技术来发现隐藏的进程. 进程相关的技术,包括将 /proc 目录与 /bin/ps 命令的输出进行比较. 系统相关的技术,包括将 /bin/ps 命令的输出结果同从系统调用方面得到的信息进行比较. 穷举法相关的技术,包括对所有的进程

linux下Oracle中创建Scott用户

#实验环境:   #Linux 5.4 #Oracle 11g r2   #创建Scott的操作过程: su – oracle vi  $ORACLE_HOME/rdbms/admin/utlsampl.sql #把 DROP USER SCOTT CASCADE这一行注释了,在前面加上 -- #然后在DROP USER BLAKE CASCADE;下面加上CREATE USER SCOTT; #保存退出   #然后 #还是在oracle下   sqlplus / as sysdba @/u01

Linux Shell 脚本限制ssh最大用户登录数

我撰写本文原来的意图是想把"复制SSH渠道"和"copy SSH Session"这样的功能从远程ssh客户端中剔除掉.因此想到可以在SSH服务端设置一下,但查阅了sshd_config的man手册,发现里面的看起来限制ssh连接数量的参数(MaxSessions ,ClientAliveCountMax等)在复制SSH渠道中并不好用,即一个远程ssh客户端可以通过这种方式几乎无限制的建立ssh会话,未免让人觉得"不爽". 例如,我正在做一件事情

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

前言 Linux系统中可以设置关于资源的使用限制,比如:进程数量,文件句柄数,连接数等等. 在日常的工作中应该遇到过: -bash: fork: retry: Resource temporarily unavailable 或者 too many open files 这些类似的操作错误,前者是由于当前用户的进程数超出限制,后者由于当前用户的文件打开数超出限制. 下面就简单的介绍下配置用户进程数和文件打开数. 一.ulimit命令 Provides control over the resou

linux 进程数

一.linux系统支持的最大进程数 限制1:既然系统使用pid_t表示进程号,那么最大进程数不能超过pid_t类型的最大值吧 限制2:使用命令ulimit -u查看系统中限制的最大进程数,我的机器上是65535./etc/security/limits.conf里面是硬限制,ulimit -u是软限制,内核参数kernel.pid_max也做了限制. 限制3:受系统资源限制,创建一个新进程会消耗系统资源,最主要的就是内存,有人做过测试,在创建6千多个进程时,程序运行得很慢,通过vmstat命令观

Linux在终端里面切换root用户

Linux在终端里面切换root用户 记录一个小知识点,如何在Linux的Terminal中切换root用户: 命令: su - 输入上述命令,回车根据提示输入root用户的密码. [[email protected] ~]$ su - Password: [[email protected]-hat-enterprise-linux ~]# [[email protected]-hat-enterprise-linux ~]# //输入exit退出root用户 [[email protecte