Мой экземпляр M4.large каким-то образом сообщил об украденном ЦП. Впрочем, если не ошибаюсь. Это должно происходить только на экземплярах серии T2 или M3.
top - 11:07:53 up 24 min, 2 users, load average: 1.00, 1.00, 0.80 Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie Cpu0 : 29.0%us, 62.6%sy, 0.0%ni, 8.0%id, 0.1%wa, 0.0%hi, 0.0%si, 0.3%st Cpu1 : 0.1%us, 0.0%sy, 0.0%ni, 99.4%id, 0.1%wa, 0.0%hi, 0.0%si, 0.4%st $ lscpu -p # The following is the parsable format, which can be fed to other # programs. Each different item in every column has an unique ID # starting from zero. # CPU,Core,Socket,Node,,L1d,L1i,L2,L3 0,0,0,0,,0,0,0,0 1,0,0,0,,0,0,0,0
Я использую набор задач 1 dd if = / dev / zero of = / dev / null, чтобы повысить производительность процессора на vCPU 0.
Согласно документу AWS, в базовом оборудовании используются: процессоры Intel Xeon® E5-2686 v4 (Broadwell) с тактовой частотой 2,3 ГГц или процессоры Intel Xeon® E5-2676 v3 (Haswell) с тактовой частотой 2,4 ГГц.
оба имеют по 2 логических ядра на физическое.
В дополнение к M3.large я заметил, что M4.xlarge также имеет эту проблему, в котором тип включает 2 физических ядра и, следовательно, 4 виртуальных ЦП. Я также тестировал его на M4.xlarge с помощью команды taskset. когда на виртуальном ЦП произошел всплеск на том же или другом ядре, причиной кражи ЦП.
Например, vCPU0 и vCPU2 сосуществуют в Core0. Когда я произвожу на них шип, я волшебным образом вижу украденный процессор на vCPU1.
Это было довольно зашито. Пожалуйста, помогите разобраться в причине. Спасибо.
Обычно кража ЦП происходит в любой виртуализированной инфраструктуре по мере изменения потребностей виртуальных машин. CPU-steal - это кража циклов с вашей виртуальной машины другой ВМ - не разными ядрами вашей виртуальной машины.
Учитывая, что Amazon использует (хотя и сильно кастомизированную) сборку Xen, кража ЦП в определенной степени ожидается, а <1% абсолютно ожидается и не должен реально влиять на характеристики производительности инстанса.
Кроме того, Amazon прямо заявляет, что инстансам EC2 предоставляются ECU - Elastic Compute Units - которые переводятся в определенное количество циклов при сравнении с конкретным процессором (из памяти это был более старый Xeon), так что только потому, что вам дается определенный количество ядер ЦП не означает, что вы получаете такое количество физических ядер.