Is there a canonical reference on how to select hardware for software routers? Or any kind of decent documentation on what the best practices and trade-offs are from one architecture to another?
Even with the advent of kernel offload forwarding I assume the choice of hardware will have a material impact when interface speeds are 10G and above.
Off the top of my head here are a few questions about selecting hardware:
- Intel or AMD. Intel is referenced a lot, but does this necessarily mean that AMD CPUs should be dismissed out of hand?
- How much is performance tied to CPU generation and/or model?
- CPUs should be evaluated on base frequency. Should turbo boost always be disabled?
- Given the choice between more cores or more Ghz, which is the optimal choice? Assuming that two CPU cores for the control plane and one CPU core per interface have already been allocated.
- Only use server CPUs or also look at consumer CPUs? Referring to the previous question, as consumer CPUs can have higher base frequency.
- Should CPU cache sizes and/or types influence the choice of CPU?
- What kind of memory is best? Fastest, ECC or non-ECC, etc.?
- How much memory is "enough"?
- How many PCI lanes do I need? Enough to feed all the NICs or is there any benefit to excess capacity?
- Does the choice of motherboard affect performance?
- Does the NIC vendor matter?
- Is it better to bond 10G/25G ports or use NICs with 100G ports?
- Something else I'm missing completely?
I'm tagging a few redditors who have previously posted about software routers in the hope that they will share experiences and tips.
u/gonzopancho, u/Jammy_Stuff, u/Cheeze_It, u/error404, u/Enrage, u/amaralarama, u/FidelityFM
No comments:
Post a Comment