Здравствуйте.
Вчера обнаружил, что мой сайт на Drupal 6 очень медленно грузится. Настолько медленно, что иногда вываливается ошибка о том, что сервер не вернул данных.
Пробовал отключать информеры, пробовал заходить по ссылкам для получения RSS. Вроде все нормально.
Пробовал писать простенький скрипт с использованием функции fsockopen(). Работает нормально.
Что еще может при загрузке страниц подгружать Drupal и как получить больше информации относительно того что его стопорит? Где и как можно включить отладку или что-то вроде?
Предположительно, проблема появилась после обновления пакетов в системе, на которой выполняется Web-сервер. К сожалению, не могу сказать какая версия PHP и Apache была, но
теперь версия пакетов в дистрибутиве (OpenSUSE):
PHP 5.3.5
Apache 2.2.17
Пробовал запускать сайт на другой конфигурации:
PHP 5.3.10
Apache 2.2.22
те же проблемы. DokuWiki на обоих системах грузится очень быстро, таким образом, я грешу именно на Drupal.
Комментарии
Советую почитать недавние отчеты. В них много всякого бывает...
Как раз сейчас занимаюсь поиском. А если бы ссылку кинули - было бы вообще замечательно.
Последнее, что я находил было еще по Drupal 6.4
Нет, недавные отчеты сайта. То есть ваш_сайт/admin/reports/dblog
Еще вариант - очень медленные запросы.
Посмотрел. Ничего криминального (на мой взгляд). Самое страшное, что я увидел - ошибки о том, что страница недоступна.
Недоступность - либо потому что такой страницы просто нет, либо потому что время ожидания истекло (из-за медленной работы, видимо).
Попробую подключиться к PostgreSQL и чего-нить там выполнить. Посмотрю на результат...
Не-а. Скорее всего PostgreSQL тут ни при чем. vacuumdb сделал вчера еще, есть и другие PHP-скрипты, работающие с PostgreSQL, которые в скорости не потеряли.
модуль devel + firebug ну и голова для раздумий и анализа
мемори лимит какой?
Memory limit 128M. Менял, не помогает.
Я сделал вот как:
1. Собрал по-быстренькому вторую конфигурацию Apache+PHP (отладочная песочница), о которой я писал в первом посте Apache 2.2.22 + PHP 5.3.10
2. Собрал к этой связке профайлер (XDebug)
3. Включил автоматическое профилирование
4. Сделал несколько пробных заходов на сайт
5. Проанализировал полученные логи профайлера.
Собственно, сразу стало ясно в чем была проблема. Когда я вчера настраивал почтовик, то внес изменения в /etc/hosts. Из-за этого, у меня Drupal стал соединяться с PostgreSQL не на том адресе. Отсюда и рост времени. В общем, проблема решена, всем спасибо. Теперь загрузка страницы занимает считанные секунды.