I've had fun building a plucky little homelab on Proxmox 8.1.4 running kernel 6.5.13-1-pve. It's installed on an HP EliteDesk 800 G6 Desktop Mini PC, with the OS installed on a SATA SSD, there being a 4tb NVME btrfs pool, and there being multiple HDD's connected via USB3. Services are run an an LXC that has Docker installed, a couple other application specific LXC's, and a VM for HAOS.
A persistent issue I haven't been able to solve for is absolutely terrible network upload speeds. Sending files over the network to the server is generally fine, however retrieving files from the server is severely limited. 1-3 MB/s. It's bad enough that when streaming a movie through Jellyfin, attempting to copy a file from the server at the same time causes the movie to hang while Jellyfin attempts to buffer. I access many of the services locally through a domain name I own (combo of pihole local DNS and NGINX proxy manager), however these network speed issues persist even when connected directly by IP. The issue also persists when accessing the files through an LXC.
It is not a disk access issue - regardless of whether it is the HDD or any of the SSD's being accessed the results are the same. There are two NICs - one built, and a HP specific add in card the Intel I225-V. The issue persists on both.
00:1f.6 Ethernet controller [0200]: Intel Corporation Ethernet Connection (11) I219-LM [8086:0d4c]
DeviceName: Onboard Lan
Subsystem: Hewlett-Packard Company Ethernet Connection (11) I219-LM [103c:870f]
Flags: bus master, fast devsel, latency 0, IRQ 126
Memory at e1400000 (32-bit, non-prefetchable) [size=128K]
Capabilities: [c8] Power Management version 3
Capabilities: [d0] MSI: Enable+ Count=1/1 Maskable- 64bit+
Kernel driver in use: e1000e
Kernel modules: e1000e
03:00.0 Ethernet controller [0200]: Intel Corporation Ethernet Controller I225-V [8086:15f3] (rev 03)
Subsystem: Hewlett-Packard Company Ethernet Controller I225-V [103c:87b9]
Flags: bus master, fast devsel, latency 0, IRQ 16
Memory at e1000000 (32-bit, non-prefetchable) [size=1M]
Memory at e1100000 (32-bit, non-prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [70] MSI-X: Enable+ Count=5 Masked-
Capabilities: [a0] Express Endpoint, MSI 00
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Device Serial Number c0-18-03-ff-ff-65-2f-06
Capabilities: [1c0] Latency Tolerance Reporting
Capabilities: [1f0] Precision Time Measurement
Capabilities: [1e0] L1 PM Substates
Kernel driver in use: igc
Kernel modules: igc
Running iperf3 on the built in NIC (clients is a laptop connected by wifi) demonstrates the issue: Client side sending data to the server is fine and probably wifi limited, while uploads from the server are significantly slower.
# iperf3 -c IP
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 18.2 MBytes 153 Mbits/sec 0 841 KBytes
[ 5] 1.00-2.00 sec 25.9 MBytes 217 Mbits/sec 0 2.12 MBytes
[ 5] 2.00-3.00 sec 30.0 MBytes 252 Mbits/sec 0 3.17 MBytes
[ 5] 3.00-4.00 sec 33.4 MBytes 280 Mbits/sec 0 3.17 MBytes
[ 5] 4.00-5.00 sec 32.2 MBytes 271 Mbits/sec 0 3.17 MBytes
[ 5] 5.00-6.00 sec 28.1 MBytes 236 Mbits/sec 0 3.17 MBytes
[ 5] 6.00-7.00 sec 33.9 MBytes 284 Mbits/sec 0 3.17 MBytes
[ 5] 7.00-8.00 sec 33.8 MBytes 283 Mbits/sec 0 3.17 MBytes
[ 5] 8.00-9.00 sec 31.9 MBytes 267 Mbits/sec 0 3.17 MBytes
[ 5] 9.00-10.02 sec 28.9 MBytes 238 Mbits/sec 34 2.31 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.02 sec 296 MBytes 248 Mbits/sec 34 sender
[ 5] 0.00-10.09 sec 296 MBytes 246 Mbits/sec receiver
# iperf3 -c IP -R
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 10.1 MBytes 84.9 Mbits/sec
[ 5] 1.00-2.00 sec 12.4 MBytes 104 Mbits/sec
[ 5] 2.00-3.00 sec 9.62 MBytes 80.7 Mbits/sec
[ 5] 3.00-4.00 sec 4.50 MBytes 37.7 Mbits/sec
[ 5] 4.00-5.00 sec 2.88 MBytes 24.1 Mbits/sec
[ 5] 5.00-6.00 sec 3.12 MBytes 26.2 Mbits/sec
[ 5] 6.00-7.00 sec 5.88 MBytes 49.3 Mbits/sec
[ 5] 7.00-8.00 sec 4.50 MBytes 37.8 Mbits/sec
[ 5] 8.00-9.00 sec 5.62 MBytes 47.2 Mbits/sec
[ 5] 9.00-10.00 sec 5.12 MBytes 43.0 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 64.9 MBytes 54.4 Mbits/sec 501 sender
[ 5] 0.00-10.00 sec 63.8 MBytes 53.5 Mbits/sec receiver
Similarly, when running on the I225-V:
# iperf3 -c IP
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 32.0 MBytes 268 Mbits/sec 0 1.57 MBytes
[ 5] 1.00-2.00 sec 33.6 MBytes 282 Mbits/sec 0 2.62 MBytes
[ 5] 2.00-3.00 sec 36.5 MBytes 306 Mbits/sec 0 3.13 MBytes
[ 5] 3.00-4.00 sec 38.1 MBytes 320 Mbits/sec 0 3.13 MBytes
[ 5] 4.00-5.00 sec 36.1 MBytes 303 Mbits/sec 0 3.13 MBytes
[ 5] 5.00-6.00 sec 33.2 MBytes 279 Mbits/sec 0 3.13 MBytes
[ 5] 6.00-7.00 sec 28.5 MBytes 239 Mbits/sec 0 3.13 MBytes
[ 5] 7.00-8.00 sec 32.6 MBytes 274 Mbits/sec 0 3.13 MBytes
[ 5] 8.00-9.00 sec 32.2 MBytes 270 Mbits/sec 0 3.13 MBytes
[ 5] 9.00-10.00 sec 35.1 MBytes 294 Mbits/sec 0 3.13 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 342 MBytes 287 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 340 MBytes 285 Mbits/sec receiver
# iperf3 -c IP -R
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 21.4 MBytes 179 Mbits/sec
[ 5] 1.00-2.00 sec 6.50 MBytes 54.5 Mbits/sec
[ 5] 2.00-3.00 sec 4.38 MBytes 36.7 Mbits/sec
[ 5] 3.00-4.00 sec 6.62 MBytes 55.6 Mbits/sec
[ 5] 4.00-5.00 sec 9.75 MBytes 81.8 Mbits/sec
[ 5] 5.00-6.00 sec 6.50 MBytes 54.5 Mbits/sec
[ 5] 6.00-7.00 sec 4.75 MBytes 39.8 Mbits/sec
[ 5] 7.00-8.00 sec 3.88 MBytes 32.5 Mbits/sec
[ 5] 8.00-9.00 sec 8.00 MBytes 67.1 Mbits/sec
[ 5] 9.00-10.00 sec 7.88 MBytes 66.1 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.01 sec 83.2 MBytes 69.8 Mbits/sec 530 sender
[ 5] 0.00-10.00 sec 79.6 MBytes 66.8 Mbits/sec receiver
Many of the issues that I've seen around the I225-V have to do with power management and it dropping network connection after time - that is not an issue here. I'm grateful for any leads or further troubleshooting steps.
Yeah I'm really curious where the difficulty lies. Nextcloud was one of the earliest, if not the first, services that I deployed on a server when learning about Linux/Docker from scratch. The evolution of my setup has mostly been through my better understanding of container management practices than through anything Nextcloud specific.
My only Nextcloud specific issue has to do with the implementation of a reverse proxy (NPM) breaking the ability for my Nextcloud and OnlyOffice containers ability to connect - and I've not been so fixed about it that I haven't really sat down trying to figure a fix.