Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Задержка диска, вызывающая всплески ЦП в экземпляре EC2

Автор вопроса: user27111987Ответов: 2

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

  1. Всплеск загрузки процессора с 50% до 100% в течение 30 секунд
  2. Он остается на 100% загруженности в течение двух минут.
  3. Загрузка ЦП падает со 100 до почти 0 за 10 секунд. В то же время задержка диска также почти вернулась к норме.

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

Мы установили инструменты мониторинга процессов, чтобы проверить, не занимает ли какой-либо конкретный процесс ЦП. Этот инструмент показал, что каждый процесс в экземпляре ec2 начинает потреблять примерно вдвое больше ресурсов ЦП. Например, загрузка ЦП нашего сервера приложений увеличивается с 0,75% до 1,5 . Аналогичное наблюдение для Nginx и других процессов. Не было ни одного процесса, занимающего более 8% ЦП. Мы изучили нашу схему трафика, и нет ничего необычного, что могло бы вызвать это. Итак, вопрос

  1. Может увеличиться задержка диска, чтобы вызвать всплеск ЦП, как указано выше, или в целом может ли задержка диска привести к пику ЦП.
  • конечно возможно, но звучит маловероятно, если код хорошо себя ведет. Можете ли вы дать более подробную информацию? например какие программы работают, как вы измеряете эти вещи? у вас есть что-нибудь, появляющееся в журналах примерно в то же время? например что-то, что делает ваш код непосредственно перед этим, или какой-то демон просыпается? Sam Mason 22.06.2020
  • Не могли бы вы предоставить свои настройки для EC2 и EBS, пожалуйста? (Тип экземпляра, тип EBS и размеры...) Clément Duveau 24.06.2020

amazon-ec2diskcpu-usagelatency

Ответы

Ответ 1 · рейтинг 1 · Clément Duveau

Вот моя ставка: вы используете машины t2/t3, которые являются взрывоопасными экземплярами. Вы можете постоянно получать доступ к 30% ЦП, а кредитная система создает предсказуемый режим справедливого использования для оставшихся 70%. Вы зарабатываете кредит, запуская инстанс, вы теряете кредит, превышая 30% загрузки ЦП.

У вас заканчиваются кредиты, а затем AWS ограничивает ваш доступ к процессору. Система снова работает гладко, когда кредиты добавляются к вашему балансу.

t2 и t3 не имеют системы кредитов, вы можете найти подробности здесь: Кредиты ЦП и базовый уровень

У вас есть два решения:

  • Возьмите экземпляр большего размера, чтобы у вас было больше кредитов в час и лучшая базовая линия или другое семейство, такое как c5, m5, r5 и т. д.
  • Выберите неограниченный режим для ваших инстансов t3

Ответ 2 · stawiu

Я бы предложил более быстрое хранение. процессор стремится добавить до 100%. ограничение работает таким странным образом, что имитирует использование по неизвестной причине. Причины могут быть одними из следующих:

  • время простоя (обратите внимание, что это то, что вы считаете БЕСПЛАТНЫМ процессором, поэтому я говорю, что оно составляет 100%)
  • пользовательское время (обычное использование)
  • системное время (использование системы)
  • iowait (ваш случай, процессор ожидает ответа HDD/SSD)
  • приятное время (процессы с низким приоритетом, которые не были включены в пользовательское время)
  • время прерывания (время разговора внешнего устройства - может быть в вашем случае, если у вас много USB-устройств и т. д. - довольно маловероятно)
  • softirq (работа в очереди из обработанного прерывания - см. выше)
  • украсть время (случай, который описывает Клемент)

Я бы посоветовал убедиться, какой из них ваш случай

you can try below to get the info:
$ sudo apt-get install sysstat
$ mpstat -P ALL 1

Отсюда есть 2 варианта для вас :)

  1. EBS позволяет запускать оптимизированный для ввода-вывода том под названием IO1 (средняя цена - средняя скорость).
  2. Измените машину и используйте ее в Nitro System (обеспечивает возможности "голого железа", то есть: как если бы у вас был реальный NVMe, подключенный напрямую - максимально возможная скорость)
m5.2xlarge  8   37  32 GiB  EBS Only    $0.384 per Hour
m5d.2xlarge 8   37  32 GiB  1 x 300 NVMe SSD    $0.452 per Hour

Источник: экземпляры, созданные на основе системы Nitro.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы