ulimit
Linux對于每個使用者,系統限制其最大程序數。為提高性能,可以根據裝置資源情況,設定各linux 使用者的最大程序數。
ulimit:顯示(或設定)使用者可以使用的資源的限制(limit),這限制分為軟限制(目前限制)和硬限制(上限),其中硬限制是軟限制的上限值,應用程式在運作過程中使用的系統資源不超過相應的軟限制,任何的超越都導緻程序的終止。
檢視ulimit
ulimit [-SHacdefilmnpqrstuvx]
參數S:表示軟限制,當超過限制值會報警
參數H:表示硬限制,必定不能超過限制值
參數a:将列出所有資源限制
參數c:當某些程式發生錯誤時,系統可能會将該程式在記憶體中的資訊寫成檔案(除錯用),這種檔案就被稱為核心檔案(core file)。此為限制每個核心檔案的最大容量
參數d:每個程序資料段的最大值
參數f:目前shell可建立的最大檔案容量
參數l:可以鎖定的實體記憶體的最大值
參數m:可以使用的常駐記憶體的最大值
參數n:每個程序可以同時打開的最大檔案句柄數
參數p:管道的最大值
參數s:堆棧的最大值
參數t:每個程序可以使用CPU的最大時間
參數u:每個使用者運作的最大程序并發數
參數v:目前shell可使用的最大虛拟記憶體
修改ulimit
ulimit [-SHcdefilmnpqrstuvx] [limit]
在檢視的指令後面加上限制值,就可以調整某一項限制,但隻對目前登入shell有效。
參數S表示設定軟限制;參數H表示設定硬限制;當都不指定時,表示設定軟限制和硬限制均為指定值。
永久修改ulimit
所謂永久,是指每次登陸shell時,都會按配置重新設定ulimit,以達到永久生效的效果。
步驟一:
修改/etc/security/limits.conf
添加如下内容:
關于該檔案的配置方式請參考後文
[[email protected] ~]# vim /etc/security/limits.conf
* hard nproc 64000
* soft nproc 64000
* hard nofile 64000
* soft nofile 64000
以上内容表示,将-u和-n的軟限制和硬限制同時修改為64000。
步驟二:
修改/etc/pam.d/login
添加如下内容:
[[email protected] ~]# vim /etc/pam.d/login
session required pam_limits.so
以上内容表示,在登入時使用pam管理limit。
步驟三:
修改/etc/profile
添加如下内容
[[email protected] ~]# vim /etc/profile
ulimit -u 64000
ulimit -n 64000
每次登陸shell後,會初始執行這兩條ulimit指令,并使其生效。
使配置生效
重新登入或使用source /etc/profile立即生效。
source使目前shell對指定檔案内容生效。
/etc/security/limits.conf配置詳解
格式:
domain 是指生效實體
使用者名
也可以通過@group指定使用者組
使用*表示預設值
type指限制類型
soft軟限制
hard硬限制
item限制資源
core同ulimit -c
data同ulimit -d
fsize同ulimit -f
memloc同ulimit -l
nofile同ulimit -n
stack同ulimit -s
cpu 同ulimit -t
nproc同ulimit -u
maxlogins指定使用者可以同時登陸的數量
maxsyslogins系統可以同時登陸的使用者數
priority使用者程序運作的優先級
locks使用者可以鎖定的檔案最大值
sigpengding同ulimit -i
msgqueue同ulimit -q