MySQL 100% CPU

June 2, 2013 20.3k views
I'm running a small MySQL database on the $10/mo server (1GB memory/1 core) and every time I do a "top" & look at NewRelic server monitor, the system is reporting mysql is running at 97-100% CPU. All the queries seem to be running ok and returning properly. Is there something I should be doing like upgrading to a larger plan? I'm very concerned about the 100% CPU and not really sure what that means. === I have 2 databases running and they report (in terms of size) 1) 770.6 MB 2) 82.9 MB using: SELECT table_schema "DB Name", Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB" FROM information_schema.tables GROUP BY table_schema;
4 Answers

Definitely see if upgrading to a server with more cores helps.

Before you do that also try using Dynimizer. It will improve CPU efficiency for MySQL OLTP workloads. If you have a very high query/transaction rate then this will help. Will either boost throughput or reduce CPU usage, depending on where your bottle neck is. I’ve benchmarked speedups by up to 50%. Installation is a bash one-liner and because it’s software it’s a free solution and should be applied before upgrading your server. MySQL restart not even required. But you’ll need to increase swap space by 4 GB unless you have that much extra to spare or you have > 4 GB of unused RAM:

Install:

sudo bash -c 'bash <(wget -O - https://dynimize.com/install) -default

Quickstart:

https://dynimize.com/blog/tutorials/beginner/dynimizer-quickstart-tutorial/

I recommend taking a look at this answer: http://stackoverflow.com/questions/1282232/mysql-high-cpu-usage

Let me know if it helps.
  • i have this problem.

    server info:
    Ubuntu 16.0.4
    Harddisk 512 GB SSD 2.5
    RAM 32GB
    CPU Intel Xeon E3-1230v2
    Connection 1GBit
    Max. concurrent connections: 250

    Max Online: 30

    mysql usage: 301%

    i use mysql 5.7
    Apache
    PHP7

I've got the same issue.. still not getting fix..

@globalninety Did you get a solution to tune MySQL? What was your approach?

Have another answer? Share your knowledge.