1. 程式人生 > 實用技巧 >linux中/etc/security/limits.conf配置檔案說明

linux中/etc/security/limits.conf配置檔案說明

https://www.jianshu.com/p/47336fcd22da

linux資源限制配置檔案是/etc/security/limits.conf;限制使用者程序的數量對於linux系統的穩定性非常重要。
limits.conf檔案限制著使用者可以使用的最大檔案數,最大執行緒,最大記憶體等資源使用量。

* soft nofile 655350  #任何使用者可以開啟的最大的檔案描述符數量,預設1024,這裡的數值會限制tcp連線
* hard nofile 655350
* soft nproc  655350  #任何使用者可以開啟的最大程序數
* hard nproc  650000

@student hard nofile 65535
@student soft nofile 4096
@student hard nproc 50  #學生組中的任何人不能擁有超過50個程序,並且會在擁有30個程序時發出警告
@student soft nproc 30
  • hard和soft兩個值都代表什麼意思呢?
    soft是一個警告值,而hard則是一個真正意義的閥值,超過就會報錯

一、所有使用者建立的程序數:

$ ps h -Led -o user | sort | uniq -c | sort -n
      2 shtermuser
     11 zabbix
    206 elasticsearch
    490 root

二、系統最大開啟檔案描述符數:

  1. 檢視
$ cat /proc/sys/fs/file-max
6553600
  1. 設定
$ vim /etc/sysctl.conf
fs.file-max = 6553600

三、程序最大開啟檔案描述符數

  1. 檢視
    ulimit -n預設檢視的是soft limit
$ ulimit -n
170000
  • 檢視hard limit
$ ulimit -Hn
170000
  1. 設定
  • 臨時設定
#通過ulimit -Sn設定最大開啟檔案描述符數的soft limit,注意soft limit必須小於hard limit
$ ulimit -Sn 160000

#同時設定soft limit和hard limit。對於非root使用者只能設定比原來小的hard limit。
$ ulimit -n 180000
  • 永久設定
#root許可權下,在/etc/security/limits.conf中新增如下兩行,表示所有使用者最大開啟檔案描述符數的soft limit為102400,hard limit為104800。重啟生效
* soft nofile 102400
* hard nofile 104800
  • 注意:設定nofile的hard limit還有一點要注意的就是hard limit不能大於/proc/sys/fs/nr_open,假如hard limit大於nr_open,登出後將無法正常登入。

四、檢視當前系統使用的開啟檔案描述符數

$ cat /proc/sys/fs/file-nr
5664        0        186405

其中第一個數表示當前系統已分配使用的開啟檔案描述符數,第二個數為分配後已釋放的(目前已不再使用),第三個數等於file-max。

五、知道了/etc/security/limits.conf中的引數含義之後,那麼如何配置nofile,確定nofile的最大值呢。

解答:使用ulimt -n命令進行測試,如果小於系統允許的最大值,設定成功,大於最大值,系統會報錯提示。

$ ulimit -n 1100000
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048576
$ ulimit -n 1048577
-bash: ulimit: open files: cannot modify limit: Operation not permitted
$ ulimit -n 1048575
$ ulimit -n 1048576

六、ulimit -a/n/H/S 都有什麼含義

ulimit -a 顯示當前所有的資源限制
ulimit -H 設定硬體資源限制
ulimit -S 設定軟體資源限制
ulimit -n 設定程序最大開啟檔案描述符數

ulimit -u <程式數目>  使用者最多可開啟的程式數目

總結

a. 所有程序開啟的檔案描述符數不能超過/proc/sys/fs/file-max
b. 單個程序開啟的檔案描述符數不能超過user limit中nofile的soft limit
c. nofile的soft limit不能超過其hard limit
d. nofile的hard limit不能超過/proc/sys/fs/nr_open

參考:修改linux 最大檔案限制數 ulimit



作者:寇寇寇先森
連結:https://www.jianshu.com/p/47336fcd22da
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。