Нужна помощь в оптимизации сайта на Drupal 7

Аватар пользователя -pax- -pax- 21 марта в 14:50

Есть информационный сайт со статьями на Drupal 7, первый запрос после очистки кэша стал выполняться 90-120 секунд, потом все работает хорошо. Нужно разобраться почему это происходит и исправить.

devel показывает:
Executed 1187 queries in 701.72 ms. Queries exceeding 5 ms are highlighted. Page execution time was 127357.6 ms. Memory used at: devel_boot()=1.41 MB, devel_shutdown()=18.16 MB, PHP peak=22 MB.

0 Thanks

Лучший ответ

Аватар пользователя zvse zvse 21 марта в 18:23
2

поставьте профайлер, xhprof или blackfire
там на диаграмме будет показано какая функция сколько запускалась и сколько памяти съела. Дальше - надо смотреть функцию, что она делает и почему так долго
но, вроде, тут виновата память, выделенная на php, пик в 22МБ кажется очень маленьким, возможно что это - максимум что выделяется скрипту

Комментарии

Аватар пользователя zvse zvse 21 марта в 18:23
2

поставьте профайлер, xhprof или blackfire
там на диаграмме будет показано какая функция сколько запускалась и сколько памяти съела. Дальше - надо смотреть функцию, что она делает и почему так долго
но, вроде, тут виновата память, выделенная на php, пик в 22МБ кажется очень маленьким, возможно что это - максимум что выделяется скрипту

Аватар пользователя -pax- -pax- 21 марта в 19:20

Памяти и ресурсов процессора на VPS много. memory_limit в php я поднял с 256 до 512Mb это никак не повлияло.
Я предполагаю, что проблема началась после установки модуля entityreference и создания одной связи.

Мои навыки в программировании небольшие с профайлерами я никогда не сталкивался и я готов заплатить за решение моей проблемы.

Аватар пользователя Andruxa Andruxa 22 марта в 15:29

Executed 1187 queries in 701.72 ms.

Для холодного старта - не так уж и много.
А с прогретым кешем - какая статистика?

Аватар пользователя -pax- -pax- 22 марта в 19:53

Проблема вот с этим "Page execution time was 127357.6 ms." я не понимаю, что выполняется столько времени.
Я думаю тут какой-то глюк, который надо найти и исправить.

Это с кэшем:
Executed 358 queries in 42.43 ms. Queries exceeding 5 ms are highlighted. Page execution time was 163.89 ms. Memory used at: devel_boot()=0.99 MB, devel_shutdown()=11.04 MB, PHP peak=8 MB.

Но на сайте стоит boost посетителям вообще отдается только статика.

Аватар пользователя Orion76 Orion76 23 марта в 7:48

Как-то дорабатывал один сайт.
Подробностей уже не помню, но суть примерно такая.

Там тоже в т.ч. была проблема с долгой загрузкой.
Начал разбираться.
Оказалось,что все статьи на сайте автоматом добавлялись в меню..
Меню (из нескольких тысяч пунктов) полностью загружалось из БД для каждой страницы..
Но отображался на странице только первый его уровень.

Так вот, самой долгой операцией была проверка доступа к текущего пользователя каждому из нескольких тысяч пунктов меню.
Помню, меня удивило, что оно почему-то не кэшировалось..

А так, да.. как выше посоветовали, соберите профайлером статистику загрузки.
И проанализируйте ее в каком нибудь анализаторе (для каждой операционной системы есть свои анализаторы статистики профайлеров)

Аватар пользователя -pax- -pax- 25 марта в 16:25

В итоге сам поставил xhprof и нашел, что тормозит обращение к api instagram в модуле video_filter. Всем спасибо за подсказки. Решение проблемы мне взялся делать программист с которым раньше работал.