Назад | Перейти на главную страницу

VMWare ESXi и балансировка IRQ

VMWare ESXi 4.1

Гость: ядро ​​Linux 2.6.32 64bit (тоже пробовал старую)

В многопроцессорной виртуальной машине все прерывания (eth0, ata_piix) привязаны к одному процессору. При работе на чистом железе все нормально сбалансировано.

Пробовал сетевой драйвер E1000, а также паравиртуализированный VMXNET3.

Какие-либо предложения? Невозможно получить нормальную привязку irq в виртуализированной среде?

Извините, но это что-то вроде бессмысленного вопроса, виртуализированная аппаратная модель просто виртуализирована. Прерывания не реальны, адаптеры не реальны, любая «балансировка», которую вы выполняете, нереальна, любая перегрузка vCPU 0 для этого нереальна. Невозможно сделать это стабильным способом, не имея двух выделенных сетевых адаптеров, переданных через VT-d и настроив их соответствующим образом.

Если возможно, не могли бы вы обозначить некоторые симптомы? Есть ли заметное снижение производительности (привязан 1 виртуальный ЦП), когда он выполняет тяжелое прерывание? Я не уверен в официальном ответе VMware, но они в значительной степени полагаются на тот факт, что все виды «магии» происходят без ведома гостевой ОС, так что это может быть просто своего рода абстракцией.

Используя e1000, можно связать эти прерывания с одним ядром с помощью "echo 3> / proc / irq / $ irq / smp_affinity" (3 == 00000010 == core1). с vmxnet3 он остается на core0, что бы я ни делал. Независимо от того, что здесь виртуализировано или нет, загрузка процессора Linux с мягкими прерываниями и друзьями, которые едят почти на 100%, действительно очень реальна.