Рейтинг:0

Медлительность Wordpress из-за GCP HTTP Load Balancer

флаг in

Я размещаю экземпляр Wordpress на GCP Compute Engine (используя образ Marketplace). Это прекрасно работает, когда я напрямую обращаюсь к IP-адресу экземпляра, а задержка составляет около 20 мс.

Однако, чтобы сделать сайт безопасным, перед экземпляром я использую балансировщик нагрузки GCP HTTP. Я указал свой домен балансировщику нагрузки.

Когда я получаю доступ к Wordpress через балансировщик нагрузки (либо HTTP, либо HTTPS), я получаю несколько запросов с очень хорошей задержкой (около 17 мс), но затем каждые 4 или 5 запросов есть запрос, который занимает около 5 секунд. Когда я обращаюсь к экземпляру напрямую, этого не происходит.

Я включил журнал балансировщика нагрузки и заметил, что экземпляр медленно отвечает на каждые несколько запросов. Я попытался установить для параметра KeepAlive Apache2 экземпляра значение 300, но это не имеет никакого значения.

Что может быть основной причиной этого? (Я не уверен, что это Wordpress, экземпляр или балансировщик нагрузки).

Спасибо

John Hanley avatar
флаг cn
1) Если вы не сидите рядом с виртуальной машиной, задержка в 20 мс не покроет задержки в Интернете. 2) WordPress выполняет изрядное количество PHP только для того, чтобы доставить простую страницу. В вашем вопросе недостаточно информации, чтобы даже начать решать вашу проблему. Когда один запрос занимает намного больше времени, чем другие запросы, я сначала смотрю на базу данных и ресурсы, которые требуются базе данных. Затем я просмотрел бы плагины, чтобы убедиться, что один из них не является виновником.
tocas619 avatar
флаг in
@JohnHanley Это завиток для всех трех вариантов. Завиток против моего домена: `5.154792 0,080269 0,085232 4.586898 4.585617` Curl против моего IP-адреса балансировщика нагрузки `4.586002 4.581853 0,084445 0,083991 4.581840` Curl против моего IP-адреса виртуальной машины `0,738966 0,114106 0,116997 0,114877 0,122570` Во всех трех случаях это одна и та же виртуальная машина, и она очень стабильна, когда я запускаю ее для многих других итераций (у меня не было места, чтобы вставить все это сюда).
John Hanley avatar
флаг cn
Я понятия не имею, о чем сообщают эти цифры. Отредактируйте свой вопрос и поместите туда данные с заголовком. Включите команду и место, где вы ее запускаете.
tocas619 avatar
флаг in
@JohnHanley Спасибо за вашу помощь. Я исправил это сейчас, заменив балансировщик нагрузки. Смотрите мой ответ ниже.
Рейтинг:0
флаг in

Я потратил много дней, пытаясь исправить это, и сегодня я просто решил пойти по старому пути и создать новый балансировщик нагрузки. Новый балансировщик нагрузки работает как шарм.Это была точно такая же конфигурация, поэтому я не уверен, что произошло, но вот что :)

Рейтинг:0
флаг us

Чтобы проверить и оптимизировать задержку, рассмотрите сценарий, упомянутый ниже:

  1. Чтобы оптимизировать задержку для вашего балансировщика нагрузки, я бы посоветовал вам включить опцию Cloud CDN. Облачная CDN сокращает задержки, обслуживая ресурсы непосредственно на границе сети Google. в Конфигурация серверной части раздел Load Balancer, вы можете выбрать Включить облачный CDN флажок. Подробные инструкции см. Практические руководства по работе с облачной CDN.

  2. Чтобы уменьшить задержку внутри ваших приложений, проверьте все удаленные вызовы процедур (RPC), которые взаимодействуют между виртуальными машинами. Эта задержка обычно возникает, когда приложения взаимодействуют между уровнями или службами. Такие инструменты, как Облачная трассировка может помочь вам уменьшить задержку, вызванную запросами к обслуживанию приложений. Для получения дополнительной информации вы можете проверить здесь.

Если проблема все еще не устранена, поделитесь следующими сведениями, чтобы получить больше ясности по вашей проблеме:

  1. Конфигурация балансировщика нагрузки HTTP, т. е. проверки работоспособности, серверные части, интерфейс концы, правила брандмауэра и т. д.

  2. Поддержка журналов балансировщика нагрузки — задержка серверной и внешней части, MTR от клиента к LB и LB к серверной части.

  3. Чтобы проверить время запроса и ответа на IP-адрес сервера и IP-адрес LB, запустите следующая команда:

            curl -w "@curl-format.txt" -o /dev/null -s http://<LB IP/IP сервера>
    

Примечание. Чтобы создать файл «curl-format.txt», выполните синхронизация деталей с завитком документ.

tocas619 avatar
флаг in
Я включил CDN, но это не помогло. У меня только одна виртуальная машина, поэтому RPC нет. Когда я запускал команду curl, я все еще получаю большие задержки общего времени для многих запросов через LB.Вот одна строка результатов команды curl (выполняется через LB IP): `time_namelookup: 0.000485time_connect: 0.016699time_appconnect: 0.000000time_pretransfer: 0.016785time_redirect: 0.000000time_starttransfer: 9.077449âââtime_total Запуск его напрямую через инстанс не вызывает проблем.

Ответить или комментировать

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