Самостоятельно размещенный Wordpress зависает на 20 секунд перед отправкой страницы

У меня есть веб-сайт с интегрированными Wordpress и PHPBB - и все было хорошо в течение нескольких месяцев... а потом неожиданно медленно загружается.

В логах apache ошибок нет, но просмотр страницы в firebug показывает 20-секундную паузу перед доставкой страницы.

Более запутанно, на том же сервере, та же установка Apache, PHPBB загружается за 30 мс, без задержки.

Я попробовал плагин hogdetector wordpress, который указывает, что задержка перед отправкой заголовка - что, похоже, согласуется с firebug.

Есть идеи, как решить эту проблему дальше?

5 ответов

Решение

Вероятно, проблема с поиском DNS! Проверьте настройки DNS.

Один из ваших плагинов WP, вероятно, виноват. Попробуйте отключить их один за другим и посмотреть, какой из них вызывает проблему.

Если он работает в Linux (или Linux-подобной среде), попробуйте запустить анализатор пакетов при выполнении запроса и посмотрите, что он запрашивает и приостанавливает. Что-то вроде tcpdump или wireshark. Запустите это, запросите несколько страниц, посмотрите результаты. Если это проблема DNS, она должна появиться там. Если с сетью все в порядке, вам нужно будет начать проверку локальных проблем с установкой.

Я заметил (tcpdump), что когда WordPress пытается загрузить внешний контент со стороны сервера, при сбое он может повторить 3 раза, ожидая ~5 секунд между каждой попыткой. Это систематическая задержка в 15 секунд, если внешние данные постоянно недоступны; с дальнейшей обработкой страницы WordPress вы получите 20-секундное время отклика в Firefox, как и я.

У меня возникла эта проблема с плагином YouTube, который пытался загрузить контент с youtube.com прямо с сервера. Разрешения DNS были в порядке на моей установке, однако брандмауэр отправлял TCP RESET при попытках подключения к WordPress.

Я решил эту проблему, отключив загрузку внешнего содержимого на стороне сервера (может или не может быть правильным для вас), с помощью следующей директивы в wp-config.php:define('WP_HTTP_BLOCK_EXTERNAL', true);

Существует дополнительная директива для мелкозернистого контроля:define('WP_ACCESSIBLE_HOSTS', 'example1.com, example2.com');

Действительно странно, что блог медленный, но BBS в порядке. Если возможно, используйте браузер на сервере (текстовый?) Или что-то вроде wget. Если производительность локально верна, я могу думать только о проблеме с прокси. Конечно, если локальная производительность плохая, то, по крайней мере, вы знаете, что она на первом месте.

Другие вопросы по тегам