Fix slow Ethernet performance on Intel i218/i219 NIC

Some of the Hetzner servers comes with Intel i218/i219 ethernets. Linux kernel version 4.15 or later may cause slowness of download/upload speed on those NIC.  I was supposed to get 1 Gbps upload but only getting 500 Mbps.

To fix it type:

ethtool -K {interface} tso off gso off

where {interface} is the interface name. Example:

ethtool -K enp0s31f6 tso off gso off

To fix it permanently, Create the systemd service file:

touch /etc/systemd/system/nic-speed-fix.service
nano /etc/systemd/system/nic-speed-fix.service

Then add contents:

[Unit]
Description=NIC speed fix service
After=network.target

[Service]
Type=simple
ExecStart=/sbin/ethtool -K {interface} tso off gso off
Restart=on-failure

[Install]
WantedBy=multi-user.target

Change {interface} name accordingly.

You may need to change /sbin/ethtool to something else depending on where ethtool is located on your system. To find out where the ethtool is located, just enter type ethtool.

Then do the following:

systemctl daemon-reload
systemctl enable nic-speed-fix

After that reboot the server and verify it’s working.

Source:
https://forum.manjaro.org/t/solved-only-half-gigabit-eth-with-intel-i219-lm-v-under-kernel-4-14-to-4-19/58886
https://wiki.hetzner.de/index.php/Low_performance_with_Intel_i218/i219_NIC/en