主頁 > 服務器技術 > Nginx: Too Many Open Files 錯誤和解決方案

Nginx: Too Many Open Files 錯誤和解決方案

PDF版本

Nginx 的服務器使用越來越普遍,主要因為他的性能大大優于Apache2。但在使用過程中往往遇到一些問題,下面這個就是其中之一:

24: Too many open files

詳細錯誤代碼如下:

2011/05/01 23:00:49 [alert] 7387#0: *6259768 socket() failed (24: Too many open files) while connecting to upstream


次錯誤容易讓人摸不著頭緒,不知道是哪里出了問題,配置檢查過沒問題。程序代碼的錯誤也不應該是這個錯誤信息啊。
其原因是Linux / Unix 設置了軟硬文件句柄和打開文件的數目,解決方法如下:
簡單修改方法:
使用如下命令可以把打開文件數設置足夠大

ulimit -n 30000

同時修改nginx.conf添加

worker_rlimit_nofile 30000;

這樣就可以解決Nginx連接過多的問題,Nginx就可以支持高并發。
注意: 用ulimit -n 30000 修改只對當前的shell有效,退出后失效。

感覺還是通過下面的房改修改比較穩定
一、通過修改硬件配置來實現更改
你可以使用’ulimit’命令來查看系統文件限制。

ulimit -Hn
ulimit -Sn

在nginx服務器可以打開的文件數量受你操作系統的限制,編輯/etc/sysctl.conf 添加如下內容:

fs.file-max = 70000

保存退出,從新讀取系統配置

sysctl -p

再編輯 /etc/security/limits.conf 添加內容:

* soft nofile 10000
* hard nofile 30000

此修改內容需要reboot系統才能生效,所以務必從新啟動下服務器。
二、修改Nginx系統的文件限制,使用nginx worker_rlimit_nofile Option
打開你相應的配置文件位置,我用的ubutnu12.04 所以路徑如下

vim /etc/nginx/nginx.conf

添加內容

# set open fd limit to 30000
 worker_rlimit_nofile 30000;

保存退出從新讀取nginx配置

sudo service nginx reload

再次查看系統輸出

ulimit -Hn
ulimit -Sn

結果如下:

30000
10000

到此結束。希望對大家有用.


聲明: 本站所有文章歡迎轉載,所有文章未說明,均屬于原創,轉載均請注明出處。
本文有效鏈接: http://www.tbdskt.live/2013/07/nginx-open-files-error/
版權所有: Drupal與高性能網站架構 http://www.tbdskt.live


發表評論

電子郵件地址不會被公開。 必填項已用 * 標注


1 × = 六

您可以使用這些 HTML 標簽和屬性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

引用:0

下面所列的是引用到本博客的鏈接
Nginx: Too Many Open Files 錯誤和解決方案 來自 Drupal與高性能網站架構
頂部
四川时时彩投注平台