3 второй раз к первому байту

Я поддерживаю приложение электронной коммерции на PHP / SQL, и клиент звонил по поводу того, что их ttfb постоянно увеличивается почти до 3 секунд.

Что я пробовал:

  1. Создание страницы test.php, которая просто выводит какой-то текст, создает ttsfb за 30 мс.
  2. Вернулся в историю коммитов и проверил, могли ли последние изменения быть виновником.

Загрузка тестовой страницы быстро заставляет меня поверить, что это какой-то запрос или логика, выполняемая на каждой другой странице сайта (аутентификация?), Но ни один из недавних коммитов, так как переход в ttfb не имел никакого эффекта. Как это могло произойти случайно?

-2

Решение

На самом деле это проблема оптимизации производительности, которую можно решить с помощью профилирования.

Для профилирования вы можете использовать Xdebug или, может быть, другие инструменты, которые есть, но лично я не нашел полезного решения, когда сталкивался с подобной ситуацией, поэтому я просто сделал простой модуль профилирования, адаптированный к приложению.

То, что вы хотите сделать, это попытаться имитировать на локальных или промежуточных серверах точные настройки, как на производстве, настройки сервера, записи в БД и т. Д. А затем просто измерить время выполнения, начиная с первой строки в index.php и до ключевой части приложение, например, db класс чтения / записи, http запрос класса. А затем запишите данные в некоторую базу данных, чтобы вы могли сгенерировать отчет по профилированию.

Таким образом, для каждого маршрута и / или операции вы хотели бы видеть, сколько запросов к базе данных было сделано, и сколько времени они потребовали для выполнения, сколько вызовов API было сделано (если это так) и так далее. В конце цель состоит в том, чтобы иметь хорошее представление о том, сколько времени занимает часть потока выполнения.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]