PHP FPM高負載的解決辦法

2021-06-13 06:42:22 字數 2350 閱讀 9307

導致nginx 502 bad gateway

的php-cgi(fastcgi)

nginx頻爆502 bad gateway的錯誤,看了網上的教程,仍沒有徹底解決。

目前我總結的解決502 bad gateway的方式有:

1.視伺服器的效能,在php-fmp.conf裡增加max_children的值,我目前用的15.

2.用reload引數定時過載php-fpm。這個主要原因是php指令碼執行時間過長造成的,過載php-fpm能杜絕這個問題。如何徹底解決php-cgi指令碼占用大量記憶體從而導致502錯誤的產生還值得進一步**,目前該做法不失為一種好辦法。

具體的做法是,用crontab讓php-fpm平滑重啟,從而不影響php指令碼的tb

執行。

*/10 * * * * /usr/local/php/sbin/php-fpm reload

=================== 優化設定 =========================

when you running a highload website with php-fpm via fastcgi, the following tips may be useful to you : )

如果您高負載**使用php-fpm管理fastcgi,這些技巧也許對您有用:)

1. compile php』s modules as less as possible, the ****** the best (fast);

1.盡量少安裝php模組,最簡單是最好(快)的

2. increas php fastcgi child number to 100 and even more. sometime, 200 is ok! ( on 4gb memory server);

2.把您的php fastcgi子程序數調到100或以上,在4g記憶體的伺服器上200就可以

注:我的1g測試機,開64個是最好的,建議使用壓力測試獲取最佳值

3. using socket php fastcgi, and put into /dev/shm on linux;

3.使用socket連線fastcgi,linux作業系統可以放在 /dev/shm中

注:在php-fpm.cnf裡設定/tmp/nginx.socket就可以通過socket連線fastcgi了,/dev/shm是記憶體檔案系統,放在記憶體中肯定會快了.記得這時也要在nginx裡的配置裡進行修改,保持一致.

location ~ .*\.(php|php5)?$

4. increase linux 「max open files」, using the following command (must be root):

# echo 『ulimit -hsn 65536′ >> /etc/profile

# echo 『ulimit -hsn 65536 >> /etc/rc.local

# source /etc/profile 

4.調高linux核心開啟檔案數量,可以使用這些命令(必須是root帳號)

echo 『ulimit -hsn 65536′ >> /etc/profile

echo 『ulimit -hsn 65536′ >> /etc/rc.local

source /etc/profile 

注:我是修改/etc/rc.local,加入ulimit -shn 51200的

5. increase php-fpm open file description rlimit:

# vi /path/to/php-fpm.conf

find 「1024」

change 1024 to 4096 or higher number.

restart php-fpm.

5. 增加 php-fpm 開啟檔案描述符的限制:

# vi /path/to/php-fpm.conf

找到「1024」

把1024 更改為 4096 或者更高.

重啟 php-fpm.

6. using php code accelerator, e.g eaccelerator, xcache. and set 「cache_dir」 to /dev/shm on linux.

6.使用php**加速器,例如 eaccelerator, xcache.在linux平台上可以把`cache_dir`指向 /dev/shm

至於其它的優化見張宴的blog一篇文章:

PHP FPM高負載的解決辦法

這裡只是介紹了php fpm的優化方法的,但一般情況下和nginx組合使用的時候,單獨優化其中一項的話,作用不是特別的大,同時還需要對nginx進行優化 nginx的做法方法參考 上面的優化前和優化後的圖,看得出前後差距還是特別的大的 導致nginx 502 bad gateway 的php cgi...

高併發解決辦法

1.資料庫優化 以mysql資料庫為例,當資料量達到100萬以上時,mysql效能有明顯的降低,訪問速度變慢。常見的優化措施 主從同步複製,主節點用來提供修改,刪除,增加等操作,從節點提供查詢功能。但資料量達到千萬級的時候,複製同步開銷直線上公升,建議將表分割槽,根據業務分割槽。2.頁面靜態化 對系...

php fpm不能正常啟動的解決辦法

問題描述 opt php5 sbin php fpm start failed loading opt zend for php5 zend lib php extensions opt zend for php5 zend lib php extensions cannot read file d...