TGViewer
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter @phpproglib · 10.5K subscribers
Post #4056 3.45K
9 сред выполнения PHP: тест производительности

Условия испытаний:

Каждый runtime работает в 1 или 2 контейнерах Docker.
Каждый контейнер имеет 1 ЦП и 1 ГБ ОЗУ.
Инструмент нагрузочного тестирования находится в той же сети Docker.

Тестируемое приложение:

Symfony 7 с 1 контроллером и 1 представлением, без базы данных или других внешних сервисов.
Symfony разрабатывался с учетом возможности использования различных рантаймов, таких как Swoole, AMPHP и ReactPHP, хотя последние два были исключены из конкурса.

Инструмент нагрузочного тестирования:

Используется K6 для выполнения тестов нагрузки.
Тесты запускались 3 раза для каждого runtime с 10, 100 и 1000 одновременными подключениями в течение 30 секунд.

Настройки PHP и Symfony:

Используется php.ini-production (поставляется с официальными контейнерами Docker).
Включен Opcache и JIT.
Настроен предварительный загрузчик.
Symfony работает в режиме production.
Кэш Symfony прогрет во время сборки контейнера.

Результаты испытаний:

🟠Apache + mod_php и Apache + PHP-FPM показали практически одинаковые результаты.
🟠Nginx + PHP-FPM очень близок к Apache + mod_php и Apache + PHP-FPM при низкой нагрузке (10 и 100 одновременных подключений).
🟠Nginx + PHP-FPM смог обслужить около вдвое больше запросов, чем стеки, основанные на Apache, при нагрузке 1000 одновременных подключений.
🟠Nginx Unit был примерно в 3 раза быстрее, чем традиционный и наиболее популярный Nginx + PHP-FPM.
🟠Не было большой разницы между Roadrunner и Nginx + Roadrunner.
🟠Roadrunner на основе стеков работал в более чем в 2 раза быстрее, чем Nginx + PHP-FPM.
🟠FrankenPHP (не в режиме worker) был довольно близок к Nginx + PHP-FPM с точки зрения производительности.
🟠В режиме worker FrankenPHP был более чем в 10 раз быстрее, чем Nginx + PHP-FPM.
🟠Swoole практически так же быстр, как и FrankenPHP в режиме worker.

Полную версию можно увидеть здесь. Заходить с VPN
  • 👍 9
  • 🔥 2
  • 🤔 2
  • 🌚 2
  • ❤ 1
More from @phpproglib
  1. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  2. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
  3. Sep 30, 2026🐸 Библиотека пхпшника
  4. Sep 29, 2026💡 Laravel-фича, которая спасает тесты от случайных запросов Http::preventStrayRequests()…
  5. Sep 28, 2026🔐 ramsey/uuid — UUID без самописного кода Библиотека помогает генерировать, парсить и вал…
  6. Sep 28, 2026🤔 Что выведет код? ❤️ — 1 🔥 — 2 👍 — 12 👾 — Fatal error 👇 Правильный ответ (нажми, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →