Назад | Перейти на главную страницу

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

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

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

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

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

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

Вероятно, проблема с поиском в DNS! Проверьте конфигурацию DNS.

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

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

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

У меня возникла эта проблема с плагином 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. Если производительность локально правильная, единственное, о чем я могу думать, это проблема прокси. Конечно, если местная производительность оставляет желать лучшего, по крайней мере, вы знаете, что это на самом деле.