-
Hello I'm doing a comparison between caddy + php-fpm and frankenphp. Really excited about this project, but performance isn't anywhere in line with what I was expecting. Is there something I'm obviously missing or have misconfigured? Seems like frankenphp just isn't utilising the resources available to it.
caddy + php-fpm
php-fpm.conf
frankenphp
Caddyfile
Any help appreciated! Thanks for the otherwise awesome project. |
Beta Was this translation helpful? Give feedback.
Replies: 9 comments 33 replies
-
After messing around ... I see RPS soar to anywhere from 400 - 1000 RPS on real server hardware and then crash down to about 100 RPS after a few minutes and unable to recover. I set GOMAXPROCS to 1000 and indeed, see 1000+ threads being utilized but almost 0 CPU. Setting GOMAXPROCS up (much) higher seems to let the RPS get higher and eventually recover, but I wonder what is going on... cc: @dunglas |
Beta Was this translation helpful? Give feedback.
-
Yup this is the first thing I tried before posting this discussion- it unfortunately has no effect as far as I can tell. |
Beta Was this translation helpful? Give feedback.
-
Congrats on the big 1.1.0! Unfortunately still experiencing the exact same issue with the latest release.
There may be a mis-configuration of ...maybe the runtime config isn't being propagated? |
Beta Was this translation helpful? Give feedback.
-
I was wondering what is happening on my app that I was testing in two variants – with or without Symfony Runtime – Performance with runtime (measured as fulfilled requests) was around 12% of that without runtime. The answer was, memory limit in php.ini – with 1G limit, in Worker mode, FrankenPHP was utilizing only 2 cores. After raising this to 16G, response rate in Worker mode in comparison to legacy mode raised to 440%. So it does seems, that memory limit is global per all threads – which sort of makes sense, I guess? |
Beta Was this translation helpful? Give feedback.
-
Testing in non-worker, normal PHP mode. |
Beta Was this translation helpful? Give feedback.
-
Note: Vanilla Caddy will utilise as many cores as it needs, so it puzzles me as to why this is an issue with FrankenPHP |
Beta Was this translation helpful? Give feedback.
-
Until this is resolved, one can simply run multiple copies of frankenphp at the same time to get an order of magnitude higher throughput (each copy of frankenphp roughly doubles performance) until you saturate your CPU. @dunglas
This isn't ideal, as FrankenPHP should be capable of leveraging more CPU's on its own, but is a short term solution. |
Beta Was this translation helpful? Give feedback.
-
Version 1.2.2 should improve the situation (especially for benchmarks and stress tests) thanks to #898. |
Beta Was this translation helpful? Give feedback.
-
This should be addressed in #933 (which makes cgi-mode faster than worker mode) and #934 (which makes worker mode as fast as cgi-mode) |
Beta Was this translation helpful? Give feedback.
Version 1.2.2 should improve the situation (especially for benchmarks and stress tests) thanks to #898.