From mboxrd@z Thu Jan 1 00:00:00 1970 From: mulyadi.santosa@gmail.com (Mulyadi Santosa) Date: Fri, 6 Apr 2012 11:27:42 +0700 Subject: CPU Load Balancer / Scheduler / CFS In-Reply-To: References: Message-ID: To: kernelnewbies@lists.kernelnewbies.org List-Id: kernelnewbies.lists.kernelnewbies.org Hi Robert... On Fri, Apr 6, 2012 at 00:24, Robert W wrote: > But on 2.6.32, the distribution varies. Sometimes it's (100%, 33%, > 33%, 33%), other times it's (100%, 100%, 50%, 50%), etc.. while all > the other CPUs sit completely idle.. > > Both servers have many cores (more than 4). Both servers each have 2 > physical processors, and are hyper-threaded. Ahem, that HT might be the cause. To elaborate more. Linux process scheduler tend to avoid the HT sibling, because they are not "real" processor. Or if not possible to avoid at all, then put at least load as possible. Also, Linux kernel tries to "stick" a process into certain core within certain time interval. This is done to make sure the L1/L2 cache is utilized as long as possible. Processor relocation will trigger cache invalidation and that costs a lot. CMIIW.... -- regards, Mulyadi Santosa Freelance Linux trainer and consultant blog: the-hydra.blogspot.com training: mulyaditraining.blogspot.com