roadrunner: Performance degradation on production
PHP 7.3 / Symfony 3.4
Hi! On local dev server i get x 2-10-20 request time speed up for 1 concurrency request.
But on production for 50 concurent request performance on FPM 180 requests per second, on RR 165 rps. If add gc_collect_cycles() for each cycle - perfomance for RR down to 140 rps…
It is strange, there are ideas why it can work slower than FPM?
ab -n 10000 -k -c 50 ...
Enable/disablee keep alive; direct connect to roadrunner port or nginx proxypass do not affect performance.
config:
http:
address: 0.0.0.0:8080
workers:
command: "php /var/www/app/current/worker.php"
pool:
numWorkers: 8
maxJobs: 0
bin/rr serve -c roadrunner.prod.yaml
With numWorkers: 50 and maxJobs: 200 the same perfomance.
Processor: AMD Ryzen Pro 1700x (8 x 3,4 GHz) RAM: 32 GB DDR4
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Comments: 18 (11 by maintainers)
@wolfy-j you’re right. But I cannot show a commercial application having a problem. Making a special fake application to demonstrate a problem is too much work. The employer will not pay for it.
Perhaps a problem with some kind of PHP-module or open-source library. Now I can only provide this data.
yum install -y ImageMagick bc php php-fpm php-opcache php-apcu php-xml php-mbstring php-pdo php-pdo_mysql php-zip php-bcmath php-gd php-posix php-intl php-imap php-event php-pecl-redis4-4.1.1-1.el7.remi.7.2 php-gender php-xdiff php-imagickand newrelic agent
@wolfy-j Actually, this is not correct anymore. From last year, Symfony is supporting long-running mode without memory leaks via
kernel.resettag. 3rd party bundles; hard to say.But for some time, and still unknown reasons, I get insane amount of memory used on blank project. When I played with swoole recently, memory leaks happened during conversion to Symfony request: https://github.com/k911/swoole-bundle/issues/30
If interested, tomorrow I can start RR test on blank Symfony project and report you the details. It is the same problem; memory went wild during conversion. Code I used for RR test:
@wolfy-j do you expect activity from me? I suspended the research because roadrunner is worse than fpm + nginx.