У меня есть среда с балансировкой нагрузки, настроенная в Google Cloud Platform. За балансировщиком нагрузки находятся два сервера, конфигурация которых практически идентична. Один сервер находится в восточном регионе США, а другой - в центральном регионе США. Сервер в восточном регионе США легко справляется со всей нагрузкой самостоятельно, используя в среднем около 45% ЦП. Всякий раз, когда я добавляю сервер в центральном регионе к балансировщику нагрузки, его ЦП внезапно скачивает и остается на уровне 99%, пока он подключен к балансировщику нагрузки.
Дополнительная информация: серверы - это серверы Windows, на которых работает веб-сайт ASP.NET Umbraco 7. У меня также есть два сервера баз данных, на которых работает MariaDB, один главный, а другой подчиненный репликации. Восточный сервер подключается к мастеру (также в восточном регионе). Центральный сервер подключается к подчиненному (также в центральном регионе).
Может ли кто-нибудь объяснить, почему центральный сервер не справляется?
Что я пробовал:
Лучшее, что я могу предположить на данный момент, - это то, что серверу не удается успевать за пингами Health Checker, но тогда почему другой сервер не борется? Есть ли что-то в том, что я нахожусь в другом регионе, что вызывает проблему?
Мне еще предстоит попробовать. Не стесняйтесь предложить приоритет для них:
Я стараюсь избегать последнего, потому что это похоже на устранение симптомов, а не на поиск основной проблемы.
Для начала, балансировщики нагрузки Google L7 попытаются направить трафик на ближайший серверный модуль запрашивающей стороне. В вашем случае любой запрос, поступающий с восточного побережья, будет поступать в серверную часть восточного региона США, а все остальные запросы из Северной Америки будут поступать в центральную часть США. Это ожидаемое поведение.
Вы можете проверить распределение трафика L7LB, перейдя в Консоль управления> Сетевые службы> Балансировка нагрузки и щелкнув «расширенное меню». Отсюда перейдите в «Backend services» и нажмите на свой LB backend. Теперь вы можете просматривать количество запросов в секунду для каждого экземпляра в серверной части. Если вы используете 2 отдельных бэкэнда, вы можете проверить каждый из них по отдельности.
Если центральный сервер us имеет гораздо больший объем, загрузка ЦП будет выше.
Что касается проверок работоспособности, у вас есть полный контроль над частотой проверок (в идеале она должна совпадать с частотой на сервере востока США). Вы можете просмотреть свои проверки работоспособности в Compute Engine> Проверка работоспособности или на экране сведений о балансировщике нагрузки.
Вы всегда можете увеличить ЦП без увеличения памяти, поскольку это ваша проблема на данный момент. Однако это устраняет только симптом, а не проблему.
Вышеупомянутое касается того, на что следует обращать внимание на стороне Google Cloud Platform. Если трафик к обоим экземплярам примерно одинаков, начните мониторинг производительности вашего сервера, чтобы проверить, что приводит к максимальной загрузке ЦП, чтобы убедиться, что это действительно IIS, а не другое приложение.