1Gbit/s Ethernel port negotiates to 100Mb/s

My Supermicro server has been acting weird lately. I’ve done a fresh Debian 12 installation on it and the network was barely usable.

lspci confirmed that the server has two Gigabit Ethernet ports

$ lspci | grep Ethernet
02:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
03:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

lshw showed that both were connected at 100 megabits per second

$ sudo lshw -class network | grep speed
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-9-amd64 duplex=full firmware=1.9-0 ip=192.168.1.15 latency=0 link=yes multicast=yes port=twisted pair speed=100Mb/s
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-9-amd64 duplex=full firmware=1.9-0 ip=192.168.1.16 latency=0 link=yes multicast=yes port=twisted pair speed=100Mb/s

So I forced both interfaces into 1Gbit mode disabling negotiation

$ sudo ethtool -s enp2s0 speed 1000 duplex full autoneg off
$ sudo ethtool -s enp3s0 speed 1000 duplex full autoneg off

This sped things up a lot

$ sudo lshw -class network | grep speed
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-9-amd64 duplex=full firmware=1.9-0 ip=192.168.1.15 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s
       configuration: autonegotiation=on broadcast=yes driver=e1000e driverversion=6.1.0-9-amd64 duplex=full firmware=1.9-0 ip=192.168.1.16 latency=0 link=yes multicast=yes port=twisted pair speed=1Gbit/s