這篇文章主要講解了“php高并發(fā)報語法錯誤如何解決”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php高并發(fā)報語法錯誤如何解決”吧!
專注于為中小企業(yè)提供成都做網站、網站設計服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)廣南免費做網站提供優(yōu)質的服務。我們立足成都,凝聚了一批互聯(lián)網行業(yè)人才,有力地推動了近千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網站建設實現(xiàn)規(guī)模擴充和轉變。
php高并發(fā)報語法錯誤的解決辦法:1、檢查nginx的配置訪問數(shù)或者連接數(shù),并增加nginx的兩個參數(shù);2、確認php-fpm的worker進程是否夠用,然后增加worker_connections進程的數(shù)量;3、禁用掉記錄的慢日志即可。
Nginx+Php高并發(fā)報502、504問題解決:
最近在幫公司優(yōu)化php項目。一邊優(yōu)化一邊百度。這個項目訪問量挺大的(平均每分鐘請求在80000+)。
用了三臺aws服務器。兩臺8核16G、一臺4核16G。小的這臺做Nginx并跑少量的php-fpm進程。基本上放上去就掛。訪問全是502、504。因為項目是沒有問題的,之前測試跑過了。然后就開始百度找問題。
1、懷疑是nginx的配置訪問數(shù)或者連接數(shù)太小了扛不住,然后就增加nginx的兩個參數(shù)。
每個進程允許的最多連接數(shù),理論上每臺nginx服務器的最大連接數(shù)為worker_processes*worker_connections
worker_connections 5000;
一個nginx進程打開的最多文件描述符數(shù)目,理論值應該是最多打開文件數(shù)(ulimit -n)與nginx進程數(shù)相除
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進程是否夠用,如果不夠用就等于沒有開啟一樣
計算開啟worker進程數(shù)目:
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進程的數(shù)量
以及修改修改php-fpm.conf中的php進程數(shù)。無論是調大還是調小這幾個參數(shù)都不行。。。。絕望了!
修改了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這個錯誤。上面說需要禁用掉記錄的慢日志;slowlog = /var/log/php-fpm/slow.log;request_slowlog_timeout = 15s。此時,我才知道php也是記錄訪問時請求比較慢的日志。然后打開慢日志文件。發(fā)現(xiàn)全是php請求redis的錯誤日志。
找到問題原因了,就是php請求redis數(shù)據的時候,應該是請求的連接數(shù)太多了。redis連接不上導致的問題。。因為此處的業(yè)務比較復雜,所以redis的key是多個字段拼接的。查詢的時候是用的模糊查詢。所有導致redis的性能下降,后面大量的請求連接不上redis。因為這塊兒鏈接redis的代碼是我改的。。于是我又把原來請求MySQL的代碼還原了。
感謝各位的閱讀,以上就是“php高并發(fā)報語法錯誤如何解決”的內容了,經過本文的學習后,相信大家對php高并發(fā)報語法錯誤如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!
當前名稱:php高并發(fā)報語法錯誤如何解決
文章URL:http://aaarwkj.com/article8/gooiop.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供微信小程序、全網營銷推廣、外貿建站、軟件開發(fā)、網站收錄、響應式網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)