Here are some recommendations for setting up a server on which Accel-ppp will work.
1) In BIOS, disable Hyper-threading so that softirq load from the network board is not distributed to virtual cores, by the way, when HT is enabled and since the number of virtual cores is larger, then on Zabbix graphs the average CPU utilization is lower, although this is not the case.
2) If irqbalance doesn’t distribute the network adapter interruptions by processor cores, then disable irqbalance and manually configure RPS/RSS.
3) In the BIOS, select the plan “CPU performance”, and also set other possible options to “Performance”.
Also, select “Always Power ON”, so that the server will turn on itself after the power disappears and appears.
Also in the operating system, set “performance” as I described in this article:
Changing CPU Scaling Governor on Linux
4) Disable unnecessary offloads on network interfaces, I note that they are needed to improve performance, but sometimes because of them the shaper does not work correctly, for example, I had a very low upload speed, so I disabled it:
ethtool -K ens2f1 tso off gro off gso off lro off tx off rx off rxvlan off txvlan off
5) Update the driver for the network adapter, I note that on some versions of the drivers, the occupied space of RAM can quickly increase.
If it increases, you can, for example, unload and load the ixgbe module to see if it has a problem (attention, the connection to the server will be lost):
rmmod ixgbe && modprobe ixgbe
6) Enable forwarding of packages, increase the “nf_conntrack_max” and optimize other parameters in /etc/sysctl.conf.
7) If Zabbix with a standard Linux template is used on the server, then disable “Network interface discovery” in the template or for the network node, otherwise, for example, with a large number of ipoe interfaces and when Zabbix scans them all the time, there will be performance problems.