機(jī)器配置
系統(tǒng)配置:16核24G centos6.5
壓測(cè)工具:JMeter
通過(guò)調(diào)整PHP pool 配置調(diào)優(yōu)
方案一: 單臺(tái)機(jī)器有兩個(gè)進(jìn)程池,每個(gè)進(jìn)程池300個(gè)子進(jìn)程,共600個(gè)子進(jìn)程
方案二: 單臺(tái)機(jī)器啟動(dòng)6個(gè)進(jìn)程池,每個(gè)進(jìn)程池50 個(gè)子進(jìn)程,共300個(gè)子進(jìn)程
方案二每個(gè)進(jìn)程池50子進(jìn)程數(shù)以及6個(gè)進(jìn)程池都是通過(guò)壓測(cè)獲取到的數(shù)值。
| 方案 | 并發(fā) | TPS | 錯(cuò)誤率 | 報(bào)錯(cuò) |
|---|---|---|---|---|
| 方案一 | 5000 | 375 | 39% | upstream time out,no live upstreams while connectiong to upstream |
| 方案二 | 5000 | 431 | 1.37% | recv() failed(104: connection reset by peer) |
進(jìn)程池配置
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相關(guān)原理
查了些資料都沒(méi)有解釋得通為何多進(jìn)程池可以提高并發(fā)響應(yīng)。
可能的情況是每個(gè)進(jìn)程池都有資源隔離,子進(jìn)程資源隔離,減少消耗。
若集中在某個(gè)池,可能會(huì)有資源搶奪或其他資源消耗問(wèn)題?
壓測(cè)數(shù)據(jù)

image.png