У нас есть интересная проблема, когда мы наблюдаем всплеск ЦП на нашем экземпляре EC2, и в то же время мы наблюдаем всплеск задержки диска. Вот схема всплеска ЦП
- Всплеск загрузки процессора с 50% до 100% в течение 30 секунд
- Он остается на 100% загруженности в течение двух минут.
- Загрузка ЦП падает со 100 до почти 0 за 10 секунд. В то же время задержка диска также почти вернулась к норме.
Эта проблема возникала на разных инстансах AWS ec2 пару раз в течение недели и продолжается до сих пор. Во всех случаях мы наблюдаем всплеск ЦП вместе с задержкой диска, при этом всплеск ЦП имеет аналогичную схему, как указано выше.
Мы установили инструменты мониторинга процессов, чтобы проверить, не занимает ли какой-либо конкретный процесс ЦП. Этот инструмент показал, что каждый процесс в экземпляре ec2 начинает потреблять примерно вдвое больше ресурсов ЦП. Например, загрузка ЦП нашего сервера приложений увеличивается с 0,75% до 1,5 . Аналогичное наблюдение для Nginx и других процессов. Не было ни одного процесса, занимающего более 8% ЦП. Мы изучили нашу схему трафика, и нет ничего необычного, что могло бы вызвать это. Итак, вопрос
- Может увеличиться задержка диска, чтобы вызвать всплеск ЦП, как указано выше, или в целом может ли задержка диска привести к пику ЦП.
Ответ 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 варианта для вас :)
- EBS позволяет запускать оптимизированный для ввода-вывода том под названием IO1 (средняя цена - средняя скорость).
- Измените машину и используйте ее в 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.