Я думаю, что после обновления до Magento 2.3.1 у меня возникли проблемы с загрузкой некэшированных страниц (в процессе разработки).
Я сделал трассировку blackfire.io, и оказалось, что здесь 42 секунды тратятся на сон .
Теперь мне интересно, какова цель этого. Я думаю, что я бегу в каком-то состоянии гонки?
Кто-нибудь испытывал что-то подобное раньше?
РЕДАКТИРОВАТЬ: стек вызовов, кажется, включает коммерции.
Механизм lockedLoadData должен снизить нагрузку на сервер.
Ранее, когда кэш конфигурации очищался на высоконагруженных сайтах, все клиенты генерировали ту же информацию, что значительно увеличивает загрузку процессора / io.
С lockedLoadData только один клиент будет генерировать кеш, а другие будут его ждать.
Подробнее о том, как это работает.
Первый вызов функции «get data» обратный вызов и если он получает данные, то просто возвращает их (поэтому, если данные в кеше, код работает как предыдущий и не использует никаких блокировок).
Если данные недоступны и блокировка заблокирована, то в цикле мы пытаемся загружать данные до тех пор, пока данные не будут получены или не будет снята блокировка.
Если блокировки нет, мы создаем блокировку и генерируем данные, сохраняем ее в кеше, снимаем блокировку и возвращаем данные
PS: Мы отправили эти изменения как патч для одного из клиентов с нагрузкой до 20kRPM, и он работает как минимум 3 месяца без проблем. Так что, возможно, проблема в ваших настройках / модулях (например, если они сломали механизм кэширования)
источник