Как найти узкое место в Laravel?

У меня есть большое приложение, написанное с использованием Laravel 5.2. Кажется, что приложение работает некоторое время «день или два», а затем начинает замедляться «каждая таблица запросов более 15 секунд».

Я пытаюсь выяснить, что может быть причиной снижения скорости. Для начала я перечислил 4 верхние категории «ниже», которые я должен рассмотреть по порядку.

  1. Проблемы с SQL Server. Блокировки, длительные запросы.
  2. Проблема PHP, которая может вызывать лишнюю / ненужную работу, например, длинные циклы
  3. Проблемы с веб-сервером, такие как утечки памяти или медленное время отклика.
  4. Проблемы с сетью.

Для первой категории «проблемы SQL» я оценил все запросы, и все кажется легким и довольно быстрым. Нет долго выполняющихся запросов, и я не нахожу никаких блокировок SQL. Хотя я не исключил это как возможную проблему, но сейчас справедливо искать в другом месте. Стоит отметить, что приложение генерирует множество запросов, что говорит о том, что я могу столкнуться с делом N + 1.

В то время как категории 3 и 4 важны, я хотел бы сосредоточиться некоторое время на второй категории «проблема кода», в которой мне нужна помощь. Мне нужно уметь понять пару вещей, которые помогут мне сделать обоснованное суждение, если есть проблема с кодом или нет. Вот несколько вещей, которые мне нравится знать / начать регистрировать.

  1. Сколько времени занимает выполнение каждого класса, чтобы увидеть, занимает ли он больше времени.
  2. Сколько / список всех запросов, которые генерируются из каждого класса, где я могу определить источник N + 1 дела.

Я использую расширение Clockwork в Google Chrome, которое помогает мне войти. Но я не могу сломать результат на уровне класса, который даст мне глубокое понимание того, что происходит.

Как можно собрать 2 предмета, перечисленных выше? Можно ли подключиться к Clockwork и добавить эту информацию в качестве фильтра, где я просто вижу все это в Google Extension?

3

Решение

Задача ещё не решена.

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

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

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