關於PHP-FPM的backlog的默認值


有高並發的業務,就必須要調整backlog。對於PHP而言,需要注意的有3方面:

    1、操作系統 | sysctl

    2、WEB前端 | 比如:Nginx

    3、PHP后台 | 比如:php-fpm


操作系統以CentOS為例,可通過默認配置 /etc/sysctl.conf 文件進行調整。比如:

net.core.somaxconn = 1048576 # 默認為128

net.core.netdev_max_backlog = 1048576 # 默認為1000

net.ipv4.tcp_max_syn_backlog = 1048576 # 默認為1024

WEB前端以Nginx為例,可通過默認配置 /etc/nginx/nginx.conf 文件中的監聽選項來調整。比如:

listen       80 backlog=8192; # 默認為511

PHP后台,以PHP-FPM為例,可以通過默認配置 /etc/php-fpm.d/www.conf 文件進行調整。比如:

listen.backlog = 8192 # 默認為-1(由系統決定)

大系統下,如上3處都應該進行調整。

值得注意的是:

    PHP-FPM的配置文件中,關於listen.backlog選項的注釋有些誤導人:

; Set listen(2) backlog. A value of '-1' means unlimited.
; Default Value: -1

實際上如果使用默認值,很容易出現后端無法連接的問題,按老文檔上的解釋這個默認是200。建議此處不要留空,務必設置一個合適的值。


免責聲明!

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



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