Skip Navigation

Poor speeds from my home server

So I am trying to track down what is possibly slowing down my download connection from my Debian server to my devices (streaming box, laptop, other servers, etc).

First let me go over my network infrastructure: OPNsense Firewall (Intel C3558R) <-10gb SFP+ DAC-> Managed Switch <-2.5gb RJ45-> Clients, 2.5gb AX Access Point, and Debian Server (Intel N100).

Under a 5 minute stress test between my laptop (2.5gb adapter plugged into switch) and the Debian Server (2.5gb Intel I226-V NIC), I get the full bandwidth when uploading however when downloading it tops out around 300-400mbps. The download speed does not fair any better when connecting to the AX access point, with upload dropping to around 500mbps. File transfers between the server and my laptop are also approximately 300mbps. And yes, I manually disabled the wifi card when testing over ethernet. Speed tests to the outside servers reflect approximately 800/20mbps (on an 800mbps plan).

Fearing that the traffic may be running through OPNsense and that my firewall was struggling to handle the traffic, I disconnected the DAC cable and reran the test just through the switch. No change in results.

Identified speeds per device:

 undefined
        Server: 2500 Mb/s
    Laptop: 2500Base-T
    Switch: 2,500Mbps
    Firewall: 10Gbase-Twinax


  

Operating Systems per device:

 undefined
        Server: Debian Bookworm
    Laptop: macOS Sonoma (works well for my use case)
    Switch: some sort of embedded software
    Firewall: OPNsense 24.1.4-amd64


  

Network Interface per device:

 undefined
        Server: Intel I226-V
    Laptop: UGreen Type C to 2.5gb Adapter
    Switch: RTL8224-CG
    Firewall: Intel X553


  

The speed test is hosted through Docker on my server.

33 comments
  • Try switching to bbr for congestion control, and adjust the buffer sizes. The defaults are good for Gigabit but not really for higher speeds. Not near my computer right now so I can't grab a copy of my sysctl settings, but searching Google for "Linux TCP buffer size tuning" and "Linux enable bbr" should find some useful info.

    If the devices are different speeds (eg one system is 2.5Gbps but another is 1Gbps), try enabling flow control on the switch, if it's a managed switch.

33 comments