onderka.com

OPNsense-Router: Durchsatz mit PC Engines APU-Board

Seit mehreren Jahren betreibe ich einen OPNsense-Router auf einem PC Engines APU-Board.

Die CPU, ein AMD Embedded GX-412TC und die 3 Intel i211AT Ethernet-Schnittstellen mit jeweils 4/2 transmit/receive-Queues sind sehr wohl in der Lage, 1 GBit Wirespeed zu zu routen, aber unter FreeBSD 12.1 (OPNsense 21.1.4-amd64) ist weit darunter bereits Schluss - bei mir bei rund 300 bis 330 MBit/s pro TCP-Verbindung .

Der Grund dafür ist ein "Single Core Routing" unter BSD/OPNsense, das einen Kern voll auslastet, aber die 3 anderen unbenutzt lässt. Auch mit Einstellungen in den System Tunables lässt sich das Problem nicht wirklich lösen, eine TCP-Verbindung kommt im Schnitt nicht über 300 MBit/s oder rund 38MB/s.

System Tunables

Die aktuell verwendeten Einstellungen aus meiner /boot/loader.conf:

dev.igb.0.eee_disabled="1"
dev.igb.1.eee_disabled="1"
dev.igb.2.eee_disabled="1"
dev.igb.1.fc="0"
dev.igb.0.fc="0"
dev.igb.2.fc="0"
hw.igb.rx_process_limit="-1"
hw.igb.tx_process_limit="-1"
legal.intel_igb.license_ack="1"

Links

Ein wenig Lesestoff für Interessierte gibt es unter anderem hier:

Ein einfacher Test mit wget zeigt, dass unter Linux (Debian 10, OpenWRT etc.) sehr wohl 1 GBit/s pro TCP-Verbindung mit dieser Hardware möglich ist:

Aber unter OPNsense/FreeBSD eben nicht. Test-Download (1x 10GB) von Hetzner:

Und 4x 10GB parallel von Hetzner:

Update

Mit OPNsense auf einem Gigabyte GA-IMB1900TN (Celeron J1900, ebenfalls Intel-NICs, Konfiguration und System Tunables der APU-Installation 1:1 übernommen) sieht es so aus - wohlgemerkt mit einer TCP-Verbindung:

Mit IPfire auf dieser Hardware (bzw. durch diese Hardware als Router) : 108-112MB/s von Hetzners Speedtest-Server.

Wir nähern uns...

Andere Seiten unter 'Computer und Netzwerk'