Включение множества очередей (multiqueue) на Linux

Обновлена 27 марта 2024 г. в 15:20

Включение множества очередей (multiqueue) на Linux

VK Cloud поддерживает множества очередей (multiqueue) у образа ВМ и отдельной ВМ для операционных систем семейства Linux.

Функция множества очередей virtio-net обеспечивает повышение производительности, но имеет некоторые ограничения:

ОС ВМ ограничена ~ 200 векторами MSI. Для каждой очереди сетевого адаптера требуется вектор MSI, а также любое устройство virtio или назначенное устройство PCI. Определение экземпляра с несколькими сетевыми адаптерами virtio и виртуальными ЦП может привести к превышению лимита гостевого MSI.
Множества очередей хорошо работают для входящего трафика, но иногда могут вызвать снижение производительности для исходящего трафика.
Включение множества очередей увеличивает общую пропускную способность сети, но одновременно увеличивает потребление ресурсов CPU.
Если функция множества очередей была включена на хосте, но не была включена администратором в ОС ВМ, векторы MSI будут использоваться впустую.
Количество очередей автоматически устанавливается равным количеству виртуальных ЦП. Чем больше количество ЦП, тем выше пропускная способность сети.

Вариант включает множества очередей на уровне образа и будет работать для всех ВМ, созданных на базе этого образа после выполнения инструкции.

Создайте образ ВМ.

Получите список доступных образов:

Скопируйте ID нужного образа.

Включите множества очередей:

openstack image set <IMG_ID> --property hw_vif_multiqueue_enabled=true

Создайте ВМ, в которой больше одного ЦП, и подключитесь к ней.

Посмотрите все сетевые интерфейсы:

Посмотрите текущее количество очередей:

ethtool -l <имя_сетевого_интерфейса>

Создайте ВМ и подключитесь к ней.

Выполните команду:

sudo ethtool -L <имя_сетевого_интерфейса> combined <число_очередей>

Проверьте новое количество очередей (параметр Combined):

ethtool -l <имя_сетевого_интерфейса>