MySQL uses half cores of my server
Question
I'm running MySQL 5.1.62 on a 64-bits Gentoo Box.
This MySQL is heavy loaded but the problem is that it uses only half the cores of the server :
Cpu0 : 84.0%us, 13.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 3.0%si, 0.0%st
Cpu1 : 62.4%us, 34.7%sy, 0.0%ni, 3.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 68.3%us, 26.7%sy, 0.0%ni, 5.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 72.3%us, 3.0%sy, 0.0%ni, 22.8%id, 2.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu4 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 0.0%us, 0.0%sy, 0.0%ni, 0.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
This is a Dual-Quad core server with : Intel(R) Xeon(R) CPU E5606 @ 2.13GHz
Any idea how to use all cores?
Thanks for your help;
Gaëtan
Solution
Newer versions of MySQL or the Percona enhanced MySQL server may make better use of your cores. It's fairly common for database servers to be IO bound, though.
OTHER TIPS
Idea? Yep, but you won't like it.
Many cores do not automagically make a system faster: The workload it runs need to be easily parallelizable.
What I suspect to happen in your case is, that you are running a small number of concurrent queries, each being CPU intensive. As it happens, each will only use a single core.
To check, if this is the culprit, manually start 8 concurrent, CPU-Intensive queries - your CPUs should be fully used.