APU2C0 IPFire throughput test - much faster than pfSense

Posted by Pawel Suwala on 

 

APU2 to run at full gigabit on pfSense,

 

Few weeks ago we have published a pfSense throughput test for PC Engines APU2C0 board, and got few people scratching their heads. Why is the (still impressive) 620Mbit/s not a full Gigabit? The CPU is not running at 100%, the memory is not limiting the routing.

It turned out that pfSense 2.3.4 is the bottleneck, not the hardware itself. IPFire (linux) and OpenWRT(also Linux) can route a full Gigabit on APU2C0 board without breaking a sweat. 

 

Here's the pfSense vs IPFire comparison:

Name Router OS Transfer 4 connections Bandwith 4 connections Transfer 1 connection Bandwith 1 connection Ping latency min Ping avg max mdev
no router. Switched connection   1.09 GBytes 940 Mbits/sec 1.09 GBytes 938 Mbits/sec 0.254 0.31 0.363 0.035
apu2c0 pfSense 2.3.4 739 MBytes 620 Mbits 732 MBytes 614 Mbits/sec 0.331 0.45 0.653 0.08
apu2c0 IPFire 2.19 1.09 GBytes 940 Mbits/sec 1.09 GBytes 940 Mbits/sec 0.43 0.538 0.628 0.055

 

APU2 achieves a full line throughput under IPFire. If you have a gigabit internet, this should make you smile :-)

Here's a log from iperf3 and a screenshot from ipFire

root@homedesktop:/home/sniku/test# iperf3 -c 192.168.5.10
Connecting to host 192.168.5.10, port 5201
[  4] local 192.168.1.3 port 52694 connected to 192.168.5.10 port 5201
[ ID] Interval           Transfer     Bandwidth       Retr  Cwnd
[  4]   0.00-1.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   1.00-2.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   2.00-3.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   3.00-4.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   4.00-5.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   5.00-6.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   6.00-7.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   7.00-8.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   8.00-9.00   sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
[  4]   9.00-10.00  sec   112 MBytes   941 Mbits/sec    0    229 KBytes       
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec    0             sender
[  4]   0.00-10.00  sec  1.10 GBytes   941 Mbits/sec                  receiver

iperf Done.

 

 

Why is IPFire able to route more on the same hardware?

BSD-based operating systems such as pfSense use single CPU core for routing. Linux based systems are spreading the routing load between CPU cores. 

APU routers have 4 CPU cores. IPFire is able to use all of them for routing, while pfSense is using just one.

pfsense or IPFIre?

Does it mean that you should install IPFire instead of pfSense? No, not unless you need 1 Gbit throughput.

pfSense has more features, and has nicer user interface. IPFire is FAST, but it's somewhat lacking in UI and isn't as intuitive. If you don't have 1 Gbit internet, you should probably stick to pfSense or OPNSense.