Я установил 5 t1.micro EC2 за балансировщиком нагрузки AWS.
Все экземпляры замедляются после подключения к LB. Восемь из 10 запросов занимают более 30 секунд, даже когда я делаю запросы напрямую к экземплярам (в обход LB). Загрузка ЦП экземпляров не является проблемой. Когда я удаляю один из экземпляров из LB, он отлично реагирует. Как только он добавляется обратно в LB, запросы снова замедляются.
Может ли кто-нибудь дать мне некоторые подсказки относительно того, почему экземпляры реагируют намного медленнее после подключения LB?
заранее спасибо
Похоже, запросы в очереди в ваших ELB из-за (возможно) длинных заголовков Keep-Alive. ELB будут пытаться минимизировать количество подключений к бэкэнду, учитывая заголовок Keep-Alive.
Короткий (или отключенный) keep-alive заставит ELB открывать одно соединение для каждого запроса к вашему бэкэнду, если у ваших бэкэнд-узлов есть свободные ресурсы для обработки этого входящего соединения. Длительные проверки активности сократят внутренние соединения и заставят ELB максимально сериализовать запросы, что может привести к запросам, ожидающим обработки других.
Проверьте свои очереди ELB в Cloudwatch во время нагрузочных тестов, и, если они растут, пока ваши серверные ВМ не работают, попробуйте уменьшить количество запросов на соединение и уменьшить таймауты Keep-Alive. Точные значения будут варьироваться в зависимости от требований вашего приложения.
PS: t1.micro - это зло PS (2): липкость - это зло