Hello there!
My config:
VyOS 1.4.0 built from source.
Installed on bare metal:
CPU Model: Intel(R) N100
Cores: 4
Total RAM : 15.39 GB
My Net speed: 1 Gbit
My ISP supports using a dedicated router via PPPoE (with VLAN 20). Therefore I have configured as shown in the attached commands.
It’s working, meaning I get an IP and can browse without issues, however I get slow Download speeds and inconsistent speeds. I am unable to consistently saturate above 900 Mbps. Eg. running 5 consequent speed tests provide me with speeds from around 500 Mbps to 920 Mbps, but never the same. Curiously enough on upload speeds I can get above 800-900 without issues, which for me is acceptable.
Checking with iperf from my directly connected PC I get good results:
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.00 sec 1.05 GBytes 902 Mbits/sec sender
[ 5] 0.00-10.01 sec 1.05 GBytes 898 Mbits/sec receiver
I have browsed around the forum and I have applied optimizations mentioned in posts such as PPPoE gigabit network, high CPU usage - #13 by Dmitry
My /config/scripts/vyos-postconfig-bootup.script already includes the following configuration (eth0 is WAN, eth1 is LAN):
ethtool -G eth0 tx 4096 rx 4096
ethtool -G eth1 tx 4096 rx 4096
ethtool -G eth2 tx 4096 rx 4096
echo “32768” > /proc/sys/net/core/rps_sock_flow_entries
echo “f” > /sys/class/net/eth0/queues/rx-0/rps_cpus
echo “f” > /sys/class/net/eth0/queues/rx-1/rps_cpus
echo “f” > /sys/class/net/eth0/queues/rx-2/rps_cpus
echo “f” > /sys/class/net/eth0/queues/rx-3/rps_cpus
echo “f” > /sys/class/net/eth1/queues/rx-0/rps_cpus
echo “f” > /sys/class/net/eth1/queues/rx-1/rps_cpus
echo “f” > /sys/class/net/eth1/queues/rx-2/rps_cpus
echo “f” > /sys/class/net/eth1/queues/rx-3/rps_cpus
echo “2048” > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt
echo “2048” > /sys/class/net/eth0/queues/rx-1/rps_flow_cnt
echo “2048” > /sys/class/net/eth0/queues/rx-2/rps_flow_cnt
echo “2048” > /sys/class/net/eth0/queues/rx-3/rps_flow_cnt
echo “2048” > /sys/class/net/eth1/queues/rx-0/rps_flow_cnt
echo “2048” > /sys/class/net/eth1/queues/rx-1/rps_flow_cnt
echo “2048” > /sys/class/net/eth1/queues/rx-2/rps_flow_cnt
echo “2048” > /sys/class/net/eth1/queues/rx-3/rps_flow_cnt
vyos@vyos:~$ sudo ethtool -g eth0
Ring parameters for eth0:
Pre-set maximums:
RX: 4096
RX Mini: n/a
RX Jumbo: n/a
TX: 4096
TX push buff len: n/a
Current hardware settings:
RX: 4096
RX Mini: n/a
RX Jumbo: n/a
TX: 4096
RX Buf Len: n/a
CQE Size: n/a
TX Push: off
RX Push: off
TX push buff len: n/a
TCP data split: n/a
vyos@vyos:~$ sudo cat /proc/softirqs
CPU0 CPU1 CPU2 CPU3
HI: 3 2 2 16
TIMER: 669660 911469 2143909 589199
NET_TX: 52008 49744 65875 27888
NET_RX: 1643389 1510334 2171947 1799391
BLOCK: 4258 3822 3689 3442
IRQ_POLL: 0 0 0 0
TASKLET: 38 46 36 81
SCHED: 3284714 1978852 2268129 1137381
HRTIMER: 0 0 0 0
RCU: 1736501 1729023 1805250 1756780
I have also tried other firewall vendors, like OPNSense and Pfsense, virtualized and on
bare metal and so far the best performance I have gotten is with VyOS.
Is there something else I can try to improve the performance ? Is there
and issue at hardware level that’s preventing me to get higher speeds ?
Thank you!
configuration-.txt (3.3 KB)