MySQL taking too much CPU
Ignore the "fragmented" alarm; it's bogus.  Ignore the max "possible" memory; it's bogus.

Focus on the slow queries; they are causing the high CPU.  What are the slow queries?

Plan A:  Glance at SHOW FULL PROCESSLIST; frequently.  You will see one or two queries there most of the time.

Plan B:  Turn on the slowlog; set long_query_time = 2; and (after a day), run pt_query_digest.  It will tell you the worst queries.

Given a bad query (or two), show us


SHOW CREATE TABLE
EXPLAIN SELECT ...


We should be able to help you dramatically shrink the CPU load.

(Contrary to what @dborba suggested, I ruled out swapping and I/O.  Those tend to show up as low CPU, but high latency for queries.  We may need to address it again after adding some INDEXes, etc.)