Need help tuning my.cnf file
3 seconds is kind of a long time for mysql. I bet you have a lot of full-table scans going on that are using up CPU. I've gotten good mileage in decreasing CPU with just a little indexing.

This is not going to be a short answer, but try this:


Enable the slow query log (set global slow_query_log=on and set global slow_query_log_file='/someplace/you/can/find/it'), and set it to log anything above 1 second (set global long_query_time=1). 
Let it log a little bit. Then look at the output. You can just look at the slow log or use a tool like pt-query-digest (http://www.percona.com/doc/percona-toolkit/2.2/pt-query-digest.html) to find your long-running queries. Look especially for queries that scan a lot of rows to only get a few rows of results.
Pick a query that gets run a lot. Look at the involved tables (show create table my-table-in-this-query) and see what the indexes are. Also see the explain plan to show what indexes mysql plans to use (explain query select blah blah put your query here).
Add an index. See CPU decrease. 


You might not be able to index everything; the queries may have to be rewritten as well. But I bet you can get a lot of CPU back by doing this for your top queries.