Я провёл бенчмарки различных серверов и режимов запуска PHP. Что тестировалось:

  • PHP-FPM + Nginx

  • FrankenPHP (классический и worker-режим)

  • Rapira (классический, worker, dispatcher)

  • OxPHP (классический, worker)

  • RoadRunner

  • FreeUnit

  • Swoole

На каждом сервере было запущено простое приложение на Yii3. Два отдельных эндпоинта и, соответственно, два бенчмарка. Первый — без БД, чистый PHP. Второй реально обращается к PostgreSQL, что ближе к настоящим приложениям.

Некоторые выводы:

  1. Swoole — король производительности! Rapira в режимах dispatcher/worker идёт следом.

  2. FreeUnit отлично подходит, если ваше приложение работает в классическом режиме.

  3. С базой данных разница становится менее заметной. Worker-режим в среднем даёт 2× RPS.

Swoole и Rapira очень эффективны с точки зрения потребления CPU и памяти.

https://yii3-benchmarks.github.io/app-api/

https://github.com/Yii3-Benchmarks/app-api