Skip to content

Ubiquity php-pm High concurrency level benchmark #456

@jcheron

Description

@jcheron

Hi,
I implemented a PHP-PM adapter for Ubiquity framework, which I test the performance on TechEmpower benchmarks.
For the moment, the results are not conclusive (see Ubiquity and Ubiquity-react).

For the Multiple Queries test, which requires a connection to the database and could have benefited php-pm, I have the following results:

Responses per second for multiple queries test (1, 5, 10, 15, 20), concurrency level of 512:
image

The source code and configuration are available on TechEmpower repository.
The PHP-PM test (currently called Ubiquity-react) uses php-pm as a web server and load balancer.
Dockerfile to build & run is ubiquity-react.dockerfile.

I have the same symptoms as @oozone with Laravel (see #453): poor performance, and warning on some requests:

Script did not return a valid HTTP response. Maybe it has called exit() prematurely?

I also tried to manually test the script with ab:
At concurrency level 5, php-pm is more efficient than php-fpm
PHP-PM
image
Apache
image

If I increase the concurrency level, performance degrades for php-pm:
PHP-PM
image
Apache
image

TechEmpower multiple query tests are run at 512 concurrency...
At this level, my php-pm use generates warnings.
The results are the same for the other tests (Plaintext or Json).

I wonder if I'm doing something wrong somewhere.
The adjustment of the number of workers does not change much in this context.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions