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?
Вы можете изменить количество очередей во время выполнения. Итак, проверьте лимит очередей с помощью 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 ). Так что вы можете попробовать его использовать.
Я задал эту проблему в списке рассылки open-vm-tools
, вам понадобится более новая версия ESXi (7.0) и виртуальная машина с помощью аппаратная версия 17, чтобы иметь устройство vmxnet3, поддерживающее более 8 очередей.
Тогда вам понадобится более новый гостевой драйвер, чтобы иметь возможность использовать эту функцию - в настоящее время драйвер в ядре Linux не поддерживает расширенные очереди.