Re: problems benchmarking php-fpm/proxy_fcgi with h2load

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hajo,

2018-01-31 2:37 GMT-08:00 Hajo Locke <Hajo.Locke@xxxxxx>:
Hello,


Am 22.01.2018 um 11:54 schrieb Hajo Locke:
Hello,

Am 19.01.2018 um 15:48 schrieb Luca Toscano:
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.
I changed my setup to use tcp-sockets in php-fpm and proxy-fcgi. Currently i see the same behaviour.
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.
If "enablereuse=off" is set i see a lot of running php-workerprocesses (120-130) and high load. Behaviour is like expected.
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.
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.
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

[1]: https://lists.apache.org/thread.html/a9586dab96979bf45550c9714b36c49aa73526183998c5354ca9f1c8@%3Cdev.httpd.apache.org%3E 


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux