2 ms·
How do semi-modern (IE such as you'd get in a centos 8 "enterprise" distro) linux kernels manage NUMA scheduling? Is it going to make some effort to keep a "sa
by cduzz 3y ago
How do semi-modern (IE such as you'd get in a centos 8 "enterprise" distro) linux kernels manage NUMA scheduling?
Is it going to make some effort to keep a "same process/thread on same or neighbor core" or is it up to the end user to play Mel and spend some effort optimizing things?
I remember at $job people acting surprised when they'd run "2 web servers on VMs on hardware" vs "One bare metal web server with 2x the concurrency" and they discovered the "2 VMs" had better throughput. Of course, that's a direct result of $corp using huge 2 socket systems and $ops not paying as much attention to NUMA penalties as the hypervisor did (which happily placed all of VM1 and VM2's workloads on statically assigned cores each properly within a numa performance zone). I never did get a direct answer to "what happens if we just run 2 web servers on one bare metal server; give each their own IP to bind to...
- ot 3y agoCFS, the default Linux scheduler, has a hierarchy of "domains" that by default is organized following the cache topology. When doing load balancing, it is increasingly less likely to migrate tasks across domains as it goes up the hierarchy. The user is still in charge of deciding where to allocate the application's memory, either via the NUMA APIs, or via numactl. If the application is memory-intensive, for example, one strategy is to spin up one process per NUMA node and make sure it only uses memory and CPUs from that node.
- helf 3y ago[dead]