模擬併發場景壓測的PHP調優

機器配置

系統配置:16核24G centos6.5
壓測工具:JMeter

通過調整PHP pool 配置調優

方案一: 單臺機器有兩個進程池,每個進程池300個子進程,共600個子進程
方案二: 單臺機器啓動6個進程池,每個進程池50 個子進程,共300個子進程

方案二每個進程池50子進程數以及6個進程池都是通過壓測獲取到的數值。

方案 併發 TPS 錯誤率 報錯
方案一 5000 375 39% upstream time out,no live upstreams while connectiong to upstream
方案二 5000 431 1.37% recv() failed(104: connection reset by peer)

進程池配置

cat www.conf
[www]
user = www
group = www
listen = 127.0.0.1:9004
pm = static
pm.max_children = 50
pm.start_servers = 30
pm.min_spare_servers = 10
pm.max_spare_servers = 40
pm.max_requests = 400
pm.status_path = /status_9004
slowlog = var/log/$pool.log.slow
request_slowlog_timeout = 2
request_terminate_timeout = 2m

PHP相關原理

查了些資料都沒有解釋得通爲何多進程池可以提高併發響應。
可能的情況是每個進程池都有資源隔離,子進程資源隔離,減少消耗。
若集中在某個池,可能會有資源搶奪或其他資源消耗問題?

壓測數據

image.png
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章