Dual Quad Core Xeon CPU but still high load

You may be addressing the symptom and not the problem. The place to start is by looking at what is making your load so high. Is it kernel mode activity? Is it userland activity? If it is kernel mode, my guess is you are having issues writing to disk fast enough and the io is in a wait state. Look at tools like top, iostat, vmstat, etc to start narrowing down your problem.

With a load that high, you are likely to be seeing some sort of wait that is causing the kernel to queue requests.


Please check several things:

1) join_buffer_size
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_join_buffer_size
http://www.mysqlperformanceblog.com/2010/07/05/how-is-join_buffer_size-allocated/

2) sort_buffer_size
http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_join_buffer_size

3) Temporary File Creation
http://dev.mysql.com/doc/refman/5.1/en/temporary-files.html

4) SELECT queries that have sub-SELECTs

You probably have many queries that do slow joins because of the presence of tables without needed columns being indexed.

If your join buffer/sort buffer in a given DB Connection is too small to hold temporary results, the join buffer and/or sort buffer would have to page out to disk as a temp table.