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

Чем можно объяснить простои, когда количество соединений ALB велико, а частота запросов низкая?

У меня есть серверная служба на EC2, и запросы к EC2 маршрутизируются через ALB.

У моей серверной службы было короткое время простоя, во время которого резко возросла задержка ответа. Это привело к массовому увеличению количества подключений в ALB.

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

Возможно ли, что EC2 были переполнены большим количеством соединений, что могло привести к отказу новых узлов? Или ALB достаточно осведомлен о создании слишком большого количества подключений к EC2, чтобы этого избежать?

Здесь может быть множество причин. Во-первых, правильно ли зарегистрированы ваши экземпляры EC2 в Application Load Balancer в качестве целей и зарегистрированы ли ALB как работоспособные? Помните, что вам нужно вручную добавить новые экземпляры в ваш ALB в качестве цели при их создании.

Инстансы EC2 какого размера вы использовали, откуда исходит трафик и какое программное обеспечение работает на инстансах? Все это важные вопросы, которые вы должны указать в своем вопросе, чтобы они могли стать отправной точкой для устранения неполадок. Поддерживаются ли экземпляры EBS или EFS? Если EFS, проблема может быть в низкой скорости чтения тома. Вам нужно проверить использование ваших экземпляров EC2 в CloudWatch, так как кажется, что они являются узкими местами.

ALB не является корнем проблемы. Это просто сообщение о том, что задержка между пересылкой запроса на ваш сервер и получением ответа велика. Это означает, что вашему бэкенду пришло время дать ответ.

Согласно поддержке AWS: Поскольку ELB (при настройке с HTTP-прослушивателями) действует как прокси (заголовки запросов поступают и проверяются, а затем отправляются на бэкэнд), метрика задержки начнет отсчитывать, как только заголовки будут отправлены в бэкэнд, пока бэкэнд не отправит первые байтовые ответы.

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