Почему мой сервер в центральном регионе США испытывает трудности (максимальная загрузка ЦП) из-за балансировщика нагрузки Google Cloud?

Почему мой сервер в центральном регионе США испытывает трудности (максимальная загрузка ЦП) из-за балансировщика нагрузки Google Cloud?

У меня есть среда с балансировкой нагрузки, настроенная в Google Cloud Platform. За балансировщиком нагрузки находятся два сервера, которые практически идентичны по конфигурации. Один сервер находится в восточном регионе США, а другой — в центральном регионе США. Сервер в восточном регионе США легко справляется со всей нагрузкой самостоятельно, в среднем используя около 45% ЦП. Всякий раз, когда я добавляю сервер в центральном регионе к балансировщику нагрузки, его ЦП внезапно подскакивает и остается на уровне около 99% использования, пока он подключен к балансировщику нагрузки.

Дополнительная информация: Серверы — это серверы Windows, на которых запущен веб-сайт ASP.NET Umbraco 7. У меня также есть два сервера баз данных, на которых запущена MariaDB, один главный, а другой — подчиненный для репликации. Восточный сервер подключается к главному (также в восточном регионе). Центральный сервер подключается к подчиненному (также в центральном регионе).

Может ли кто-нибудь объяснить, почему центральный сервер испытывает трудности?

Что я пробовал:

  • Я подправил параметры балансировки, чтобы попытаться направить больше запросов на восточный сервер, думая, что это может снизить нагрузку на центральный сервер.
  • Я попробовал подключить центральный сервер к главной базе данных в восточном регионе.
  • Я загрузил свежую копию файлов сайта на случай, если где-то возникнут какие-то неполадки.
  • Я последовал совету Google (автоматически) и увеличил объем оперативной памяти (которая изначально не была особо загружена; она никогда не превышала 50%).
  • Я попробовал развернуть совершенно новый сервер, также в центральном регионе, настроив его с нуля. Те же проблемы с производительностью.

Лучшее, что я могу предположить на данный момент, это то, что серверу не удается справиться с пингами Health Checker, но тогда почему другой сервер не справляется? Может, проблема в том, что он находится в другом регионе?

То, что я еще не пробовал. Не стесняйтесь предлагать приоритеты по этим вопросам:

  • Перенос центрального сервера в другой регион.
  • Перемещение центрального сервера в восточный регион вместе с другим сервером.
  • Добавление процессора

Я стараюсь избегать последнего варианта, поскольку он, по-моему, скорее направлен на лечение симптомов, чем на поиск основной проблемы.

решение1

Для начала балансировщики нагрузки Google L7 попытаются направить трафик на ближайший к запрашивающей стороне бэкенд. В вашем случае любой запрос, приходящий с восточного побережья, будет направлен на бэкенд us-east, а все остальные запросы из Северной Америки будут направлены на us-central. Это ожидаемое поведение.

Вы можете проверить распределение трафика L7LB, перейдя в Management Console > Network services > Load Balancing и нажав на "advanced menu". Отсюда перейдите в "Backend services" и нажмите на ваш LB backend. Теперь вы можете просмотреть RPS для каждого экземпляра в backend. Если вы используете 2 отдельных backend, вы можете проверить каждый из них по отдельности.

Если объем сервера us-central значительно больше, загрузка ЦП будет выше.

Что касается проверок работоспособности, вы полностью контролируете частоту проверок (в идеале она должна совпадать с частотой сервера us-east). Вы можете просмотреть проверки работоспособности в Compute Engine > Проверки работоспособности или на экране сведений о балансировщике нагрузки.

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

Вышеизложенное описывает, на что следует обратить внимание со стороны Google Cloud Platform. Если трафик к обоим экземплярам примерно одинаков, начните отслеживать производительность сервера, чтобы проверить, что максимально использует ресурсы ЦП, и убедиться, что это действительно IIS, а не другое приложение.

Связанный контент