On 9 Nov 2014, at 20:50, Michael Richardson <mcr@sandelman.ca> wrote:
Alan DeKok <aland@deployingradius.com> wrote:
I'd like to run a FR with more than 256 virtual servers/listening ports.
Why? That's a bit unusual.
Yeah, why not just run more than once instance? I think that would also spread the load across more cores, and reduce memory contention if your machine is has any NUMA-like properties (many machines with more than one CPU socket tends to have penalties for accessing memory not directly attached to that CPU).
Possibly, but you would have to force the processor affinity of each radiusd process so that all the worker threads ran on cores in the same zone as the master thread. From what i've observed the Linux kernel isn't smart enough to do this on its own, else the default weighting that control process affinity don't usually result in it happening without manual intervention. The larger performance increase in this case would come from parallelising socket reads and packet validation, which is currently only done by a single 'master' thread. Anyway, the kqueue stuff Alan just pushed should help with the inefficiencies of selecting over large numbers of FDs, just need to switch to OSX or *BSD :) Arran Cudbard-Bell <a.cudbardb@freeradius.org> FreeRADIUS development team FD31 3077 42EC 7FCD 32FE 5EE2 56CF 27F9 30A8 CAA2