nginx 優化系列之worker_connections


在Nginx優化的過程中,將 connections加大的時候Nginx發出警告

worker_connections exceed open file resource limit: 1024

此警告的問題是受限於Linux的最大文件數限制。

環境:centos6.5 64bit

ulimit -n

查看用戶打開的最大文件數:1024

此處的1024是每個進程打開的最大文件數,對於系統的最大限制:

more /proc/sys/fs/file-max

355828

file-max是整機可以打開的fd數目,對確定的進程仍然是1024個。

那么我們來修改我們的限制。

修改/etc/security/limits.conf文件,在文件中添加如下行:

* soft noproc 65535

* hard noproc 65535

* soft nofile 65535

* hard nofile 65535

就是限制了任意用戶的最大線程數和文件數為65535。

其中*為所有用戶的打開文件數限制,可用’*'號表示修改所有用戶的限制;soft或hard指定要修改軟限制還是硬限制;65535則指定了想要修改的新的限制值,即最大打開文件數(請注意軟限制        值要小於或等於硬限制)。修改完后保存文件。

修改/etc/pam.d/login文件,在文件中添加如下行: session required /lib/security/pam_limits.so 這是告訴Linux在用戶完成系統登錄后,應該調用pam_limits.so模塊來設置系統對該用戶可 使用的各種資源數量的最大限制(包括用戶可打開的最大文件數限制),而pam_limits.so模塊就會從/etc/security/limits.conf文件中讀取配置來設置這些限制值。修改完后保存此文件。

修改/etc/rc.local腳本,在腳本中添加如下行:
     echo “65535"> /proc/sys/fs/file-max 這是讓Linux在啟動完成后強行將系統級打開文件數硬限制設置為65535。修改完后保存此文件。(了整機可以打開的fd數目,過大造成cup過高)

 

除了在系統中進行設定 nofile(fs.file-max) 值外,可以在 nginx.conf 中指定worker_process可以使用的nofile值,如:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM