[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  此用戶允許登錄的最大數目

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM