Hi Hajo,2018-01-31 2:37 GMT-08:00 Hajo Locke <Hajo.Locke@xxxxxx>:Hello,I did some further tests to solve this issue. I set ttl=1 for this Proxy and achieved good performance and high number of working childs. But this is paradoxical.
Am 22.01.2018 um 11:54 schrieb Hajo Locke:
Hello,
Am 19.01.2018 um 15:48 schrieb Luca Toscano:
I changed my setup to use tcp-sockets in php-fpm and proxy-fcgi. Currently i see the same behaviour.Hi Hajo,
2018-01-19 13:23 GMT+01:00 Hajo Locke <Hajo.Locke@xxxxxx>:
Hello,
thanks Daniel and Stefan. This is a good point.
I did the test with a static file and this test was successfully done within only a few seconds.
finished in 20.06s, 4984.80 req/s, 1.27GB/s
requests: 100000 total, 100000 started, 100000 done, 100000 succeeded, 0 failed, 0 errored, 0 timeout
so problem seems to be not h2load and basic apache. may be i should look deeper into proxy_fcgi configuration.
php-fpm configuration is unchanged and was successfully used with classical fastcgi-benchmark, so i think i have to doublecheck the proxy.
now i did this change in proxy:
from
enablereuse=on
to
enablereuse=off
this change leads to a working h2load testrun:
finished in 51.74s, 1932.87 req/s, 216.05MB/s
requests: 100000 total, 100000 started, 100000 done, 100000 succeeded, 0 failed, 0 errored, 0 timeout
iam surprised by that. i expected a higher performance when reusing backend connections rather then creating new ones.
I did some further tests and changed some other php-fpm/proxy values, but once "enablereuse=on" is set, the problem returns.
Should i just run the proxy with enablereuse=off? Or do you have an other suspicion?
Before giving up I'd check two things:
1) That the same results happen with a regular localhost socket rather than a unix one.
If "enablereuse=off" is set i see a lot of running php-workerprocesses (120-130) and high load. Behaviour is like expected.2) What changes on the php-fpm side. Are there more busy workers when enablereuse is set to on? I am wondering how php-fpm handles FCGI requests happening on the same socket, as opposed to assuming that 1 connection == 1 FCGI request.
When set "enablereuse=on" i can see a big change. number of running php-workers is really low (~40). The test is running some time and then it stucks.
I can see that php-fpm processes are still active and waiting for connections, but proxy_fcgi is not using them nor it is establishing new connections. loadavg is low and benchmarktest is not able to finalize.
proxy_fcgi knows about inactive connection to kill it, but not reenable this connection for working.
May be this is helpful to others.
May be a kind of communicationproblem and checking health/busy status of php-processes.
Whole proxy configuration is this:
<Proxy "unix:/dev/shm/php70fpm.sock|fcgi://php70fpm">
ProxySet enablereuse=off flushpackets=On timeout=3600 max=15000
</Proxy>
<FilesMatch \.php$|\.php70$>
SetHandler "proxy:fcgi://php70fpm"
</FilesMatch>Thanks a lot for following up and reporting these interesting results! Yann opened a thread[1] on dev@ to discuss the issue, let's follow up in there so we don't keep two conversations open.Luca