Recently I spent far too long diagnosing a slow upload speed on a low-end Kimsufi 2G server with an old SiS900 ethernet adapter. The download speed was full 100mbit, but upload was less than 0.1mbit. The issue did not persist into rescue mode, which led me to assume a software issue.
The symptoms matched an issue with TCP windows, or with half duplex vs full duplex, but neither of those turned out to be the case.
The issue turned out to be IRQ related. Simply blacklisting a few unnecessary modules (parallel port, sound) and disabling acpi solved the issue