I'm using jruby and Debian wheezy x64. When I run a multithreaded ruby script, htop shows that it's using multiple cores visually with the bars at the top, and that it's using 200% CPU on the process list but it's only using 100% of the capacity of two cores. I assume it's possible to have more cores running at 100% and this number seems too convenient to be bottle-necked by either the program logic or another hardware aspect. Is the OS limiting the amount of available instructions I'm using, if so how do I stop this?
When I mean visually using multiple cores e.g.: 98% core 1, 58% core 2, and 44% core 3. These percentages are constantly shifting up and down and to different sets of cores, but always collectively add up to 198%-200%. More than 3(/8 total) cores are being used, but any cores other than the three most burdened only utilize 2% or less capacity. I guess I should also mention this is a linode VPS.
I've tried using taskset and it's already set to a cpu mask of 0-7.
Also it looks as if only 3 threads can run at once, the number jumps between 1 and 3 and sometimes for a very short time 4.