Ubuntu izmanto RX un TX rindā tikai 8 procesorus ar vmxnet3

Uzstādīju Ubuntu 16.04 vmware esxi 6.7 ar 32 kodolu procesoru šai mašīnai. Linux palaiž tikai 8 rindas uz tx un rx, un tā nevar izmantot visus procesorus lielā slodzē.

# ethtool -S ens192 | grep Queue
 Tx Queue#: 0
 Tx Queue#: 1
 Tx Queue#: 2
 Tx Queue#: 3
 Tx Queue#: 4
 Tx Queue#: 5
 Tx Queue#: 6
 Tx Queue#: 7
 Rx Queue#: 0
 Rx Queue#: 1
 Rx Queue#: 2
 Rx Queue#: 3
 Rx Queue#: 4
 Rx Queue#: 5
 Rx Queue#: 6
 Rx Queue#: 7

Es konfigurēju modprob

options vmxnet3 num_rqs=32 num_tqs=32

Bet kodols noraida sāknēšanas opcijas

# dmesg  | grep num_
[    2.626483] vmxnet3: unknown parameter 'num_rqs' ignored
[    2.627238] vmxnet3: unknown parameter 'num_tqs' ignored

Tas ir lspci izvade

lspci -k
03:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
    DeviceName: Ethernet0
    Subsystem: VMware VMXNET3 Ethernet Controller
    Kernel driver in use: vmxnet3
    Kernel modules: vmxnet3
0b:00.0 Ethernet controller: VMware VMXNET3 Ethernet Controller (rev 01)
    DeviceName: Ethernet1
    Subsystem: VMware VMXNET3 Ethernet Controller
    Kernel driver in use: vmxnet3
    Kernel modules: vmxnet3

un draiveris

# lspci -n | grep "03:00\|0b:00.0"
03:00.0 0200: 15ad:07b0 (rev 01)
0b:00.0 0200: 15ad:07b0 (rev 01)

kā vai es varu palielināt šīs rindas?

6
задан 2 October 2020 в 15:41
2 ответа

Вы можете изменить количество очередей во время выполнения. Итак, проверьте лимит очередей с помощью ethtool --show-channels ens192 , а затем измените число с помощью ethtool --set-channels ens192 rx N tx N . Примечание: описанный выше способ неприменим к драйверу vmxnet3 из-за отсутствия поддержки этой функции.

ОБНОВЛЕНИЕ: после проверки исходного кода vmxnet3_driver я обнаружил, что максимальное количество очередей равно 8 ( https://elixir.bootlin.com/linux/latest/source/drivers/net/vmxnet3/vmxnet3_int.h#L306 ). Количество очередей зависит от количества ЦП ( https://elixir.bootlin.com/linux/latest/source/drivers/net/vmxnet3/vmxnet3_drv.c#L3398 ). Но очевидно, что оно не может превышать жестко запрограммированное значение.

UPDATE2: Я проверил источник vmware-tools. У драйвера от него другие ограничения: до 32 очередей ( https://github.com/vmware/open-vm-tools/blob/master/open-vm-tools/modules/shared/vmxnet/vmxnet3_defs. h # L636 ). Так что вы можете попробовать его использовать.

7
ответ дан 4 January 2021 в 07:23

Я задал эту проблему в списке рассылки open-vm-tools

, вам понадобится более новая версия ESXi (7.0) и виртуальная машина с помощью аппаратная версия 17, чтобы иметь устройство vmxnet3, поддерживающее более 8 очередей.

Тогда вам понадобится более новый гостевой драйвер, чтобы иметь возможность использовать эту функцию - в настоящее время драйвер в ядре Linux не поддерживает расширенные очереди.

1
ответ дан 4 January 2021 в 07:23

Теги

Похожие вопросы