搜尋
首頁後端開發PHP問題php 高並發報語法錯誤怎麼解決

php 高並發報語法錯誤怎麼解決

Dec 15, 2022 am 09:08 AM
php高並行

php高並發報語法錯誤的解決方法:1、檢查nginx的配置存取數或連接數,並增加nginx的兩個參數;2、確認php-fpm的worker進程是否夠用,然後增加worker_connections進程的數量;3、停用掉記錄的慢日誌即可。

php 高並發報語法錯誤怎麼解決

本教學操作環境:Windows10系統、PHP8.1版、Dell G3電腦。

php 高並發報語法錯誤怎麼解決?

Nginx Php高並發報502、504問題解決:

最近在幫公司優化php專案。一邊優化一邊百度。這個項目訪問量挺大的(平均每分鐘請求在80000 )。

用了三台aws伺服器。兩台8核心16G、一台4核心16G。小的這台做Nginx並跑少量的php-fpm進程。基本上是放上去就掛。訪問全是502、504。因為專案是沒有問題的,之前測試跑過了。然後就開始百度找問題。

1、懷疑是nginx的配置存取數或連接數太小了扛不住,然後就增加nginx的兩個參數。

每個程序允許的最多連接數,理論上每台nginx伺服器的最大連接數為worker_processes*worker_connections

 worker_connections 5000;

一個nginx進程打開的最多文件描述符數目,理論值應該是最多開啟檔案數(ulimit -n)與nginx進程數相除

worker_rlimit_nofile 20000;

php請求的逾時時間和快取等

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;

nginx設定完了重啟一下。 。但是測試了一下 完全沒反應。

2、懷疑是php的設定問題。

確認php-fpm的worker進程是否夠用,如果不夠用就等於沒有開啟一樣

#計算開啟w​​orker進程數目:

ps -ef | grep 'php-fpm'|grep -v 'master'|grep -v 'grep' |wc -l

計算正在使用的worker進程,正在處理的請求

netstat -anp | grep 'php-fpm'|grep -v 'LISTENING'|grep -v 'php-fpm.conf'|wc -l

如果上面兩個值接近可以考慮增加worker_connections進程的數量

以及修改修改php-fpm.conf中的php進程數。無論是調大還是調小這幾個參數都不行。 。 。 。絕望了!

修改了php-fpm.conf的日誌等級log_level = debug。在error_log檔中看到了一下錯誤:

[29-Mar-2014 22:40:10] ERROR: failed to ptrace(PEEKDATA) pid 4276: Input/output error (5)
[29-Mar-2014 22:53:54] ERROR: failed to ptrace(PEEKDATA) pid 4319: Input/output error (5)
[29-Mar-2014 22:56:30] ERROR: failed to ptrace(PEEKDATA) pid 4342: Input/output error (5)

於是,我又開始google這個錯誤。找到一次文章(http://www.mamicode.com/info-detail-1488604.html)。上面說需要停用掉記錄的慢日誌;slowlog = /var/log/php-fpm/slow.log;request_slowlog_timeout = 15s。此時,我才知道php也是記錄訪問時請求比較慢的日誌。然後打開慢日誌檔。發現全是php請求redis的錯誤日誌。 。 。

找到問題原因了,就是php請求redis資料的時候,應該是請求的連線數太多了。 redis連線不上所導致的問題。 。因為此處的業務比較複雜,所以redis的key是多個欄位拼接的。查詢的時候是用的模糊查詢。所有導致redis的效能下降,後面大量的請求連線不上redis。因為這塊兒連結redis的程式碼是我改的。 。於是我又把原來請求mysql的程式碼還原了。 。

目前專案正常運作了,每台伺服器的cpu基本上都快100%了。擔心還會出問題,cpu爆滿,mysql的請求連線抗不住。 。 。等後面再來優化吧! ! ! !

推薦學習:《PHP影片教學

以上是php 高並發報語法錯誤怎麼解決的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)