I have a Linux server process that should runs multiple threads at close to 100%, each on its own CPU. When I run the process on one server (see  below), the CPUs in question appear to stay pegged at 100%, according to top.
However, when I run my process on a different server (see  below), the CPUs are only at 100% around a half of the time, and the rest of the time drop to 50% or lower and bounce around.
How should I investigate the relevant scheduler, interrupt and other issues that might be contributing to this problem?
 Linux server1 m 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux
 Linux server2 3.2.0-34-generic #53-Ubuntu SMP Thu Nov 15 10:48:16 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux