Linux資源限制,主要可以分為系統級別和內核級別的:
第一:系統級限制:
/etc/security/limits.conf
limits.conf的格式如下:
username"@groupname type resource limit
username|@groupname:設置需要被限制的用戶名,組名前面加@和用戶名區別。也可以用通配符*來做所有用戶的限制。
type:有soft,hard以及-,soft指的是當前系統生效的設置值。hard 表明系統中所能設定的最大值。soft的限制不能比hard限制高。用-就表明同時設置了soft和hard的值。
resource:
core - 限制內核文件的大小
date - 最大數據大小
fsize - 最大文件大小
memlock - 最大鎖定內存地址空間
nofile - 打開文件的最大數目
rss - 最大持久設置大小
stack - 最大棧大小
cpu - 以分鐘為單位的最多CPU時間
noproc - 進程的最大數目
as - 地址空間限制
maxlogins - 此用戶允許登錄的最大數目
要使limits.conf文件配置生效,必須要確保 pam_limits.so文件被加入到啟動文件中。
查看 /etc/pam.d/login 文件中有:(沒有就添加)
session required /lib/security/pam_limits.so
注意:
好多人設置了limitc.conf沒有測試,測試後發現沒有生效,原因大多數為:
32位系統 session required /lib/security/pam_limits.so
64位系統 session required /lib64/security/pam_limits.so
第二:應用軟件級別的限制:
這個比較常見,比如Nginx在這一塊做的比較好
第三:內核級別的限制:
這個是比較多的,我慢慢搜集