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

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

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

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

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

  1. Может увеличиться задержка диска, чтобы вызвать всплеск ЦП, как указано выше, или в целом может ли задержка диска привести к пику ЦП.

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


Ответы (2)


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

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

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

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

  • Возьмите экземпляр большего размера, чтобы у вас было больше кредитов в час и лучшая базовая линия или другое семейство, такое как c5, m5, r5 и т. д.
  • Выберите неограниченный режим для ваших инстансов t3
person Clément Duveau    schedule 24.06.2020
comment
Тип экземпляра — m5.2xlarge, тип EBS — gp2, размер — 320. - person user27111987; 27.06.2020

Я бы предложил более быстрое хранение. процессор стремится добавить до 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.

person stawiu    schedule 28.06.2020