This article describes the problem of Low performance with Intel i218/i219 NIC and how to workaround it.
Low performance with Intel i218/i219 NIC
Problem
With kernel version 4.15, a fix in the e1000e driver has been introduced: https://github.com/torvalds/linux/commit/b10effb92e272051dd1ec0d7be56bf9ca85ab927
This fix slightly slows down DMA access times to prevent the NIC from hanging up on heavy UDP traffic. This impacts the TCP performance.
Workaround
In order to regain full transfer speeds, you can turn off TCP segmentation offloading via the following command:
ethtool -K <interface> tso off gso off
There is currently no fix available / announced that allows offloading TCP segmentation to the NIC without sacrificing performance.
You can ignore the following error message:
Cannot get device udp-fragmentation-offload settings: Operation not supported
Older ethtool versions try to disable a feature not present in newer kernel versions. Nevertheless, deactivating the TCP segmentation offloading will still work: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=898907