天天看點

Linux設定limits

limits.conf的工作原理:

limits.conf的後端是這樣工作的:limits.conf是pam_limits.so的配置檔案,然後/etc/pam.d/下的應用程式調

用pam_***.so子產品。譬如說,當使用者通路伺服器,服務程式将請求發送到PAM子產品,PAM子產品根據服務名稱在/etc/pam.d目錄下選擇一個

對應的服務檔案,然後根據服務檔案的内容選擇具體的PAM子產品進行處理。

pam_limits.so子產品的主要功能是限制使用者會話過程中對各種系統資源的使用情況。預設情況下該子產品的配置檔案是/etc/security/limits.conf。而該配置檔案的基本格式實際上是由4個字段組成的表,其中具體限制的内容包括:

Domain          type            item                                        value
  使用者名/組名      軟/硬限制                                                   具體值
                                core——core檔案大小 (KB)
                                data——最大資料大小(KB)
                                fsize——最大檔案大小(KB)
                                memlock——最大可用記憶體空間(KB)
                                nofile——最大可以打開的檔案數量
                                rss——最大可駐留白間(KB)
                                stack——最大堆棧空間(KB)
                                cpu——最大CPU使用時間(MIN)
                                nproc——最大運作程序數
                                as——位址空間限制
                                maxlogins——使用者可以登入到系統最多次數
                                locks——最大鎖定檔案數目



      

Ulimit指令

設定限制     可以把指令加到profile檔案裡,也可以在/etc/security/limits.conf檔案中定義

限制。

指令參數

-a      顯示所有限制

-c      core檔案大小的上限

-d      程序資料段大小的上限

-f      shell所能建立的檔案大小的上限

-m     駐留記憶體大小的上限

-s      堆棧大小的上限

-t      每秒可占用的CPU時間上限

-p     管道大小

-n     打開檔案數的上限

-u     程序數的上限

-v     虛拟記憶體的上限

vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480


要使 limits.conf 檔案配置生效,必須要確定 pam_limits.so 檔案被加入到啟動檔案中。檢視 /etc/pam.d/login 檔案中有:
session required /lib/security/pam_limits.so


重新開機
ulimit -a檢視 下 OK


vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100說明:* 代表針對所有使用者noproc 是代表最大程序數
nofile 是代表最大檔案打開數






2)、讓 SSH 接受 Login 程式的登入,友善在 ssh 用戶端檢視 ulimit -a 資源限制:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改為 yes,并把 # 注釋去掉
b、重新開機 sshd 服務:
/etc/init.d/sshd restart
3)、修改所有 linux 使用者的環境變量檔案:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited如果你使用squid的話,你要在/etc/init.d/squid的檔案加入ulimit -HSn 65535.另外,在squid.conf中也要加入max_filedesc 16384注:上面這種方式隻是改變了使用者登陸系統後的檔案打開數,對于/etc/init.d/nginxphp這種的啟動腳本并不起作用,像這種啟動腳本,需要在腳本内加一行:


ulimit -HSn 65535
      

繼續閱讀