CHR Proxmox Optimization

I was looking for a rundown on how to optimize CHR on Proxmox.

If your NIC support passthrough or SR-IOV that’s one optimization, care to share the use case? if this is PPPoE server then you are out of luck if simple queue was involved, if you can moved bandwidth management somewhere then you might have a fighting chance, we have lot of CHR on the edge before running on proxmox or xcp-ng but BRAS/PPPoE is not one of them

The only advice I can give is to use passthrough NICs as @loloski already mentioned.

If you want to use a virtualised driver make sure to use the VirtIO NIC driver.

Other than that there’s no real optimisation to be done. It runs very well in my experience.

The use case is a BGP router, but looking for maximum throughput with minimal effects of BGP churn. Tens of gigs of throughput with multiple BGP peers.

yes definitely SR-IOV + multi queue that’s the way to go from the experience

EDIT: Forgot to say we also disable connection tracking and very minimal firewall rules in RAW

Anything specific in terms of the number of cores for the number of interfaces or any other such optimizations? Anything to change on the proxmox side for efficiency?

I remember that RPS adjustments were important in older versions of Mikrotik. Is that no longer the case?

We used the cheapo Super Micro 2U system all the time with mellanox connectX-4 our bandwidth requirement per pop is in the ball park of 12-15G+ but nothing more. In the hypervisor we always disable hyperthreading and we dedicate 12core because the nic support 12 multi-queue and 64G ECC ram (honestly we never consume more than 32G of ram with 4 or sometimes 5 BGP full feeds peer)

I can’t prematurely recommend the kernel optimization we have done because the server is also doing something light to moderate load (radiius,cacti,internal systems et. al) to maximize its usage (cost reduction decision)

I think that’s it, I can’t remember if we are doing something out of ordinary and to make the deployment consistent we used ansible and templating engine (jinja2) if i was not mistaken.

If i can recall something important then I’ll update again this post