我的目标是增加环形缓冲区(我有 Linux red-hat 7.1),但我得到以下结果:
ethtool -G eth1 rx 8192
Cannot set device ring parameters: Invalid argument
那么如何启用这个值?或者这可能是最大值?
当前状态:
ethtool -g eth1
Ring parameters for eth1:
Pre-set maximums:
RX: 4096
RX Mini: 0
RX Jumbo: 0
TX: 4096
Current hardware settings:
RX: 256
RX Mini: 0
RX Jumbo: 0
TX: 512
备注 - 我想增加环形缓冲区,因为错误 - pkts rx OOB - 表明网卡缓冲区不足
# ethtool -i eth1
driver: vmxnet3
version: 1.1.30.0-k-NAPI
firmware-version:
bus-info: 0000:1b:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no
more /etc/modprobe.d/blacklist.conf
blacklist ipv6
more /etc/sysconfig/network-scripts/ifcfg-eth1
MTU=9000
DEVICE=eth1
HWADDR=70:10:76:9E:02:81
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NETMASK=255.255.255.0
IPADDR=12.160.0.36
modinfo vmxnet3
filename: /lib/modules/3.10.0- 229.14.1.el7.x86_64/kernel/drivers/net/vmxnet3/vmxnet3.ko
version: 1.1.30.0-k
license: GPL v2
description: VMware vmxnet3 virtual NIC driver
author: VMware, Inc.
rhelversion: 7.1
srcversion: EF80BF71B6F577C3370F410
alias: pci:v000015ADd000007B0sv*sd*bc*sc*i*
depends:
intree: Y
vermagic: 3.10.0-229.14.1.el7.x86_64 SMP mod_unload modversions
signer: Red Hat Enterprise Linux kernel signing key
sig_key: 44:02:00:8F:2B:3F:DA:1F:6C:1C:64:BA:2C:10:BF:0C:FE:EC:AB:B7
sig_hashalgo: sha256
答案1
将环形缓冲区增加到超出驱动程序默认限制
您正在尝试将 RX 设置为 8192,但是根据您的输出,驱动程序默认限制为 4096。
要增加驱动程序施加的限制,您需要首先查看您正在使用的驱动程序ethtool -i eth1
并modinfo vmxnet3
在您的情况下使用,或者查看驱动程序文档以获取该驱动程序可用的选项。
然后,您可以在自定义文件 /etc/modprobe.d/drivername.conf 中根据需要和驱动程序支持的方式设置选项
您可以手动卸载并重新安装驱动程序,或者重新启动以使设置生效。
免责声明:如果您选择的设置不受驱动程序正确支持,您将失去网络连接,并且必须从控制台或带外控制台设备恢复配置,例如iLo 或 iDrac或其他远程管理界面。我为在裸机上执行此操作的任何人提供此免责声明。在此示例中,他们使用的是 VMWare,因此他们可以使用 vSphere 控制台重新获得访问权限并恢复设置。
答案2
4096
根据输出,您的最大值是ethtool
。
请尝试该值。
最大值取决于您的硬件。例如:
[root@LAS ~]# ethtool -g eth1
Ring parameters for eth1:
Pre-set maximums:
RX: 2047
RX Mini: 0
RX Jumbo: 0
TX: 511
Current hardware settings:
RX: 200
RX Mini: 0
RX Jumbo: 0
TX: 511