Broadcom bce(4)网卡

一些用户已经注意到某些Broadcom网卡的问题,尤其是那些内置于戴尔硬件中的网卡。如果发现你的bce网卡行为不正常,数据包丢失或导致系统崩溃,那么你可能需要应用以下调整,特别是在amd64系统上。

在/boot/loader.conf.local中 - 添加以下内容(如果文件不存在,则创建该文件):

kern.ipc.nmbclusters =“131072” 
hw.bce.tso_enable = 0 
hw.pci.enable_msix = 0

这将增加网络内存缓冲区的数量,直接禁用TSO,并禁用msix。

丢失很多(小)UDP数据包

如果你在bce卡上看到大量的数据包丢失,你也可以尝试改变netisr设置。这些可以在系统>高级设置下的系统可调参数选项卡上设置。在该页面上,添加两个新的可调参数:

net.isr.direct_force = 1 
net.isr.direct = 1

Broadcom bge(4)网卡

请参阅上文,但在设置名称中将“bce”更改为“bge”。

英特尔igb(4)和em(4)网卡

某些intel igb卡,特别是多端口卡,可能非常容易/快速耗尽mbufs资源,特别是在amd64上。下面的调整会有所改善:

在/boot/loader.conf.local中 - 添加以下内容(如果文件不存在,则创建该文件):

kern.ipc.nmbclusters =“131072” 
hw.igb.num_queues = 1

这将增加网络内存缓冲区的数量,并使该卡使用一个队列而不是多个队列,以减轻系统的压力。

em(4)网卡也可以使用相同的设置,只需在上面的设置中使用“em”代替“igb”即可。

英特尔ix(4)卡

在/boot/loader.conf.local中,添加以下内容:

kern.ipc.nmbclusters =“262144” 
kern.ipc.nmbjumbop =“262144”

作为一个sysctl(系统可调)

hw.intr_storm_threshold = 10000

如果将VLAN与Intel 10 Gb ix(4)网卡配合使用,则可能需要禁用驱动程序的某些功能才能使VLAN正常工作。例如,要在NIC ix0上应用这些设置,请运行以下命令。

ifconfig ix0 -vlanhwfilter

这应该可以了,但在某些情况下,你还可能发现除VLAN硬件过滤之外,还需要禁用TSO,可以这样做:

ifconfig ix0 -vlanhwfilter -vlanhwtso -tso

你可以将这些命令放入shellcmd标记中,以便在引导时执行以使修改持久化。

流量控制

在某些情况下,你可能希望禁用流量控制。确切的方法取决于所涉及的硬件,以下是示例。

  • 进入/boot/loader.conf.local,添加以下字段:

  • 在(4)中:

    • hw.em.fc_setting = 0

  • IGB(4):

    • hw.igb.fc_setting = 0