Laravel on kubernetes - медленная автозагрузка композитора (продакшн)

Мы настроили кластер кубернетов для нашего приложения laravel на облачной платформе Google. Контейнеры:

  • код приложения + php-fpm
  • apache2
  • другие, не связанные с проблемой

(Мы работаем под управлением nginx-ingress-controller, но, похоже, это не связано с проблемой)

Мы запускали стресс-тесты jmeter на простом маршруте laravel, который возвращает «ok», и мы заметили ужасное время отклика.

Laravel on kubernetes - медленная автозагрузка композитора (продакшн)

После этого мы запускаем тот же тест на index2.php (внутри общедоступного каталога, перемещающегося по фреймворку), который просто возвращает «ok».

И мы получили такой результат (!): Laravel on kubernetes - медленная автозагрузка композитора (продакшн)

Покопавшись, мы обнаружили, что эту медлительность вызывает автозагрузка материала композитора.

Мы будем очень благодарны за любые советы о том, как можно решить эту проблему.

Спасибо

composer dump-autoload -a --no-dev пробовали?

rob006 06.09.2018 12:23

Да, мы испробовали все оптимизации и композитор dump-autoload, установленный с помощью --optimize-autoloader --classmap-authoritative

Tania Petsouka 06.09.2018 12:29
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
406
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо. Мы обнаружили, что у нас не включен opcache. Как описано в документации о композиторе optimize-autoloader:

On PHP 5.6+, the class map is also cached in opcache which improves the initialization time greatly. If you make sure opcache is enabled, then the class map should load almost instantly and then class loading is fast.

Другие вопросы по теме