目錄html
/etc/security/limits.conf
文件實際是 Linux PAM(插入式認證模塊,Pluggable Authentication Modules)中 pam_limits.so
的配置文件,並且只針對於單個會話。 該設置不會影響系統服務的資源限制。還要注意 /etc/security/limits.d/
的這個目錄,shell
# /etc/security/limits.conf # #This file sets the resource limits for the users logged in via PAM. 該文件爲經過PAM登陸的用戶設置資源限制。 #It does not affect resource limits of the system services. #它不影響系統服務的資源限制。 #Also note that configuration files in /etc/security/limits.d directory, #which are read in alphabetical order, override the settings in this #file in case the domain is the same or more specific. 請注意/etc/security/limits.d下按照字母順序排列的配置文件會覆蓋 /etc/security/limits.conf中的 domain相同的的配置 #That means for example that setting a limit for wildcard domain here #can be overriden with a wildcard setting in a config file in the #subdirectory, but a user specific setting here can be overriden only #with a user specific setting in the subdirectory. 這意味着,例如使用通配符的domain會被子目錄中相同的通配符配置所覆蓋,可是某一用戶的特定配置 只能被字母路中用戶的配置所覆蓋。其實就是某一用戶A若是在/etc/security/limits.conf有配置,當 /etc/security/limits.d子目錄下配置文件也有用戶A的配置時,那麼A中某些配置會被覆蓋。最終取的值是 /etc/security/limits.d 下的配置文件的配置。 # #Each line describes a limit for a user in the form: #每一行描述一個用戶配置 #<domain> <type> <item> <value> #Where: #<domain> can be: # - a user name 一個用戶名 # - a group name, with @group syntax 用戶組格式爲@GROUP_NAME # - the wildcard *, for default entry 默認配置爲*,表明全部用戶 # - the wildcard %, can be also used with %group syntax, # for maxlogin limit # #<type> can have the two values: # - "soft" for enforcing the soft limits # - "hard" for enforcing hard limits 有soft,hard和-,soft指的是當前系統生效的設置值,軟限制也能夠理解爲警告值。 hard表名系統中所能設定的最大值。soft的限制不能比hard限制高,用-表名同時設置了soft和hard的值。 #<item> can be one of the following: <item>可使如下選項中的一個 # - core - limits the core file size (KB) 限制內核文件的大小。 # - data - max data size (KB) 最大數據大小 # - fsize - maximum filesize (KB) 最大文件大小 # - memlock - max locked-in-memory address space (KB) 最大鎖定內存地址空間 # - nofile - max number of open file descriptors 最大打開的文件數(以文件描敘符,file descripter計數) # - rss - max resident set size (KB) 最大持久設置大小 # - stack - max stack size (KB) 最大棧大小 # - cpu - max CPU time (MIN) 最多CPU佔用時間,單位爲MIN分鐘 # - nproc - max number of processes 進程的最大數目 # - as - address space limit (KB) 地址空間限制 # - maxlogins - max number of logins for this user 此用戶容許登陸的最大數目 # - maxsyslogins - max number of logins on the system 系統最大同時在線用戶數 # - priority - the priority to run user process with 運行用戶進程的優先級 # - locks - max number of file locks the user can hold 用戶能夠持有的文件鎖的最大數量 # - sigpending - max number of pending signals # - msgqueue - max memory used by POSIX message queues (bytes) # - nice - max nice priority allowed to raise to values: [-20, 19] max nice優先級容許提高到值 # - rtprio - max realtime pr iority # #<domain> <type> <item> <value> # #* soft core 0 #* hard rss 10000 #@student hard nproc 20 #@faculty soft nproc 20 #@faculty hard nproc 50 #ftp hard nproc 0 #@st
/etc/security/limits.d/
目錄*-nproc.conf
文件,該文件是用於限制用戶的線程限制。咱們也能夠在該目錄建立配置文件在 /etc/security/limits.d/
下,以 .conf 結尾。
centos 7centos
在CentOS 7版本中爲/etc/security/limits.d/20-nproc.conf
,dom
# Default limit for number of user's processes to prevent # accidental fork bombs. # See rhbz #432903 for reasoning. * soft nproc 4096 # 全部的用戶默承認以打開最大的進程數爲 4096 root soft nproc unlimited # root 用戶默承認以打開最大的進程數 無限制的。
CentOS 6socket
在CentOS 6版本中爲/etc/security/limits.d/90-nproc.conf
ide
咱們不將全部的配置配置在/etc/security/limits.conf
而是將配置放在 /etc/security/limits.d/
下。
好比咱們將 nofile的配置放在 /etc/security/limits.d/20-nofile.conf
,nproc 的配置放在 /etc/security/limits.d/20-nproc.conf
.大數據
通常咱們須要配置的 /etc/security/limits.d/20-nofile.conf
爲。this
root soft nofile 65535 root hard nofile 65535 * soft nofile 65535 * hard nofile 65535
/etc/security/limits.d/20-nproc.conf
設置爲spa
* - nproc 65535 root soft nproc unlimited root hard nproc unlimited
示例一:
當 /etc/security/limits.conf
配置了:線程
root soft nofile 65538 root hard nofile 65538 * soft nofile 65539 * hard nofile 65539
這個root 用戶的 默認取值是 65538 ,* 統配符雖然在 root 配置後面,可是 root 的配置只能被 root 進行覆蓋。
咱們看下這個配置,當這樣配置的時候
root soft nofile 65538 root hard nofile 65538 * soft nofile 65539 * hard nofile 65539 root soft nofile 65539
這個的 root 用戶的取值仍是 65538 ,由於雖然 root soft nofile 65539
會覆蓋咱們以前的配置,可是這個配置是不生效的。由於 root soft nofile 65539
配置的值大於root hard nofile 65538
, soft
配置的值不能大於 hard
.
示例二:
當咱們在 /etc/security/limits.conf
配置了:
root soft nofile 65538 root hard nofile 65538 * soft nofile 65539 * hard nofile 65539
而後咱們在 /etc/security/limits.d/20-nofile.conf
配置了:
root soft nofile 65536 root hard nofile 65536 * soft nofile 65540 * hard nofile 65540
最後的取值是會取 /etc/security/limits.d/20-nofile.conf
裏面的值。
- 配置,只能被特定覆蓋。
- /etc/security/limits.d/ 下文件的相同配置能夠覆蓋 /etc/security/limits.conf
具體詳細配置根據應用狀況進行配置。
設置能夠打開文件的最大數爲 65536
ulimit -SHn 65536
重啓後失效。
配置到配置文件/etc/security/limits.conf
或者 /etc/security/limits.d/
中。
而後退出當前會話,從新登陸。 便可生效,重啓配置也會保留。
後續補充。
-S use the `soft' resource limit # 設置軟限制 -H use the `hard' resource limit # 設置硬限制 -a all current limits are reported# 顯示全部的配置。 -b the socket buffer size # 設置socket buffer 的最大值。 -c the maximum size of core files created # 設置core文件的最大值. -d the maximum size of a process's data segment # 設置線程數據段的最大值 -e the maximum scheduling priority (`nice') # 設置最大調度優先級 -f the maximum size of files written by the shell and its children # 建立文件的最大值。 -i the maximum number of pending signals # 設置最大的等待信號 -l the maximum size a process may lock into memory #設置在內存中鎖定進程的最大值 -m the maximum resident set size -n the maximum number of open file descriptors # 設置最大能夠的打開文件描述符。 -p the pipe buffer size -q the maximum number of bytes in POSIX message queues -r the maximum real-time scheduling priority -s the maximum stack size -t the maximum amount of cpu time in seconds -u the maximum number of user processes # 設置用戶能夠建立的最大進程數。 -v the size of virtual memory # 設置虛擬內存的最大值 -x the maximum number of file locks
查看全部的配置
ulimit -a
查看配置的最大打開文件數
ulimit -n
更改配置
ulimit -SHn 65536