首頁  >  文章  >  後端開發  >  Nginx之——nginx:accept failed 24: Too much open files

Nginx之——nginx:accept failed 24: Too much open files

WBOY
WBOY原創
2016-07-29 08:49:081368瀏覽

轉載請註明出處:http://blog.csdn.net/l1028386804/article/details/51425325

有一台伺服器存取量非常高,使用的是nginx ,錯誤日誌不停報以下錯誤:

2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08 :53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:498:53: [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many )
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert>2016/05/16 08:53:49 [alert] #0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)
2016/05/16 08:53:49 [alert] 13576#0: accept() failed (24: Too many open files)

解決方法:

解決方法:

centos5.3 中n 為1024, 當Nginx連線數超過1024時,error.log中就出現以下錯誤:

[alert] 12766#0: accept() failed (24: Too many open files)使用ulimit -n 655350 可以把開啟檔案數設定夠大, 同時修改nginx.conf , 新增worker_rlimit_nofile 655350;(與error_log同等級)

這樣就可以解決Nginx連線過多的問題,Nginxx就可以支援高並發。 還要修改nginx

>

另外, ulimit -n 也會影響mysql 的並發連線數。把他提高,也就提高了mysql並發。

注意: 用ulimit -n 2048 修改只對目前的shell有效,退出後失效。

修改方法若要令修改ulimits的數值永久生效,則必須修改配置文件,可以給ulimit修改命令放入/etc/profile裡面,這個方法實在是不方便,

還有一個方法是修改

/etc/security/limits.conf

/etc/security/limits.conf 格式,檔案裡面有很詳細的註解,例如

* soft nofile 655360

* hard nofile 655360

星號代表硬件,nofile為這裡指可開啟檔案數。

把以上兩行內容加到 limits.conf檔案中即可。 另外,要使 limits.conf 檔案設定生效,必須確保 pam_limits.so 檔案被加入到啟動檔案中。查看/etc/pam.d/login 檔案中有:

session required /lib/security/pam_limits.so

修改完重新登入就可以看到效果,可以透過ulimit -n 查看。

以上就介紹了Nginx之——nginx:accept failed 24: Too many open files,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn