I'm running FreeBSD 14.1-RELEASE-p6 on a server, with two NICs both plugged in, using the igb driver
dmesg for these NICs looks as such:
I have an iSCSI volume exported on the system, being available on the igb0 port (named as "mgmt" on my server), ifconfig is as such:
I'm not really doing anything super fancy on this interface, it started primarily as a way to always get into the host system even if for whatever reason jails managed to saturate the connection on the other port. Starting from yesterday, I wanted to add an iSCSI volume to extend the storage capacity for my personal desktop (running Linux), that was fairly simple to setup in /etc/ctl.conf and all.
Problem, though: the initial transfer is a couple terabytes large and while on gigabit, it should only take a few hours, the network link drops itself down to 100Mbps after a short period of time. I have replaced every cable between the computers and even replaced and added network switches, but the problem persists. I had noticed that each time I unplug and replug the cables, the speed goes back to full gigabit for a few minutes, before dropping back down again. I have eventually come to a workaround of entering
I have read tuning(7) and adjusted
dmesg for these NICs looks as such:
Code:
igb0: <Intel(R) I210 (Copper)> port 0xe000-0xe01f mem 0xfc700000-0xfc77ffff,0xfc780000-0xfc783fff at device 0.0 on pci5
igb0: EEPROM V3.16-0 eTrack 0x800004d6
igb0: Using 1024 TX descriptors and 1024 RX descriptors
igb0: Using 4 RX queues 4 TX queues
igb0: Using MSI-X interrupts with 5 vectors
igb0: Ethernet address: d0:50:99:ff:c2:41
igb0: netmap queues/slots: TX 4/1024, RX 4/1024
pcib6: <ACPI PCI-PCI bridge> at device 5.0 on pci3
pci6: <ACPI PCI bus> on pcib6
igb1: <Intel(R) I210 (Copper)> port 0xd000-0xd01f mem 0xfc600000-0xfc67ffff,0xfc680000-0xfc683fff at device 0.0 on pci6
igb1: EEPROM V3.16-0 eTrack 0x800004d6
igb1: Using 1024 TX descriptors and 1024 RX descriptors
igb1: Using 4 RX queues 4 TX queues
igb1: Using MSI-X interrupts with 5 vectors
igb1: Ethernet address: d0:50:99:ff:c2:40
igb1: netmap queues/slots: TX 4/1024, RX 4/1024
I have an iSCSI volume exported on the system, being available on the igb0 port (named as "mgmt" on my server), ifconfig is as such:
Code:
mgmt: flags=1008843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,LOWER_UP> metric 0 mtu 1500
options=4e527bb<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,JUMBO_MTU,VLAN_HWCSUM,TSO4,TSO6,LRO,WOL_MAGIC,VLAN_HWFILTER,VLAN_HWTSO,RXCSUM_IPV6,TXCSUM_IPV6,HWSTATS,MEXTPG>
ether d0:50:99:ff:c2:41
inet 10.0.5.0 netmask 0xfffff000 broadcast 10.0.15.255
inet6 fe80::d250:99ff:feff:c241%mgmt prefixlen 64 scopeid 0x1
inet6 fd2f:972c:cd64:0:d250:99ff:feff:c241 prefixlen 64 autoconf
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active
nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
I'm not really doing anything super fancy on this interface, it started primarily as a way to always get into the host system even if for whatever reason jails managed to saturate the connection on the other port. Starting from yesterday, I wanted to add an iSCSI volume to extend the storage capacity for my personal desktop (running Linux), that was fairly simple to setup in /etc/ctl.conf and all.
Problem, though: the initial transfer is a couple terabytes large and while on gigabit, it should only take a few hours, the network link drops itself down to 100Mbps after a short period of time. I have replaced every cable between the computers and even replaced and added network switches, but the problem persists. I had noticed that each time I unplug and replug the cables, the speed goes back to full gigabit for a few minutes, before dropping back down again. I have eventually come to a workaround of entering
ifconfig mgmt down; ifconfig mgmt up
repeatedly, every time the speed drops. It only temporarily restores gigabit performance. (At least with iSCSI operating over TCP, I'm pretty confident the brief downtime is not a real problem.)I have read tuning(7) and adjusted
net.inet.tcp.sendspace
and net.inet.tcp.recvspace
to no avail (putting those sysctls all the way to 1048576...). I have found old forum posts suggesting things like disabling tso mode on the interface, which also does not correct the problem. I have tried to disable lro too, also did not correct the problem. I'm at a loss for how to fix this permanently so I don't need to babysit the machine and bring the interface down and back up. Babysitting it to finish the initial transfer might work ok, but I definitely don't want to be doing this long-term.