OPNsense-Router: Durchsatz mit PC Engines APU-Board
Diese Seite wurde vor mehr als 2 Jahren erstellt
und vor über einem Monat zuletzt bearbeitet. Eventuell ist längst ihr Mindesthaltbarkeitsdatum überschritten!
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:
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.