How to fix MySQL high CPU usage

How to fix MySQL high CPU usage

Majority web applications are database driven. MySQL is a popular database server for open source applications, but we’ve seen that it can cause performance issues in the long run.

MySQL databases grow in size, and tables get fragmented over time. This contributes to MySQL load spikes. So, protecting a server from MySQL high CPU issues requires close monitoring and periodic optimization.

See how we fix MySQL performance issues!

In Bobcares’ Server Management services, there are 3 key operations that we do to keep MySQL server stable:

1. Initial server optimization 

When we setup a server or during initial server optimization task in the servers manage, we perform custom tweaking of the MySQL server to tune them best for the customer’s business.

After analyzing the website types and traffic, we tweak the key settings in MySQL servers that helps to ensure optimal resource usage – such as the connection limits, buffer size and query cache size, etc.,

2. 24/7 monitoring & emergency rescue

A vulnerability in MySQL server is usually revealed when there’s a spike in server traffic. So, it is important to keep a close watch on the server metrics round the clock.

Our experts monitor MySQL health 24/7, which helps us to detect a spike in the CPU usage or abusive processes promptly and to fix them before it crashes the entire server.

3. Follow-up audit & optimization

While many server administrators handle high load with a service restart, those are just temporary fixes. If proper investigation and tweaking is not done, the load spike can happen again.

At Bobcares, we do a follow-up investigation to audit the MySQL settings to see WHY an issue happened in the first place, and then optimize the tables and tweak MySQL settings so that it won’t happen again.

Today, we’ll take a look at how we react to a MySQL high CPU situation, and what we do to prevent its recurrence.

[ You don’t have to be a MySQL expert to keep your sites fast and stable. Our server experts would help you to maintain your MySQL server stable. ]

How to detect MySQL high CPU usage

Very often people link high server load to high CPU usage. That is not always true. Server load can go high due to bottlenecks in any resource. This can include memory, disk I/O, network or CPU.

The top reason for MySQL induced server load is due to memory or I/O exhaustion. If it is CPU bottleneck, the output of top would look like this:

top - 8:31:15 up 23 days, 3:33, 1 user, load average: 22.31, 19.72, 25.02
 Tasks: 81 total, 5 running, 76 sleeping, 0 stopped, 0 zombie
 Cpu(s): 87.8%us, 0.3%sy, 0.0%ni, 11.2%id, 0.0%wa, 0.2%hi, 0.5%si, 0.0%st
 Mem: 2975920k total, 1018219k used, 1957701k free, 287408k buffers

If it is I/O induced bottleneck, the %wa (called wait average) will have the highest CPU%. In contrast, if it is a memory induced load, the “free” memory would be limited to just a few MBs.

Click here to know how to fix a MySQL high memory usage situation.


Never again lose customers to poor server speed! Let us help you.

Sign Up once. Enjoy Peace Of Mind For Ever!


1 Comment

  1. Thank you *very much* for your advice. Came home today, the first day of January 2017, to find my mariadb process taking up about 40% CPU … with no database queries, should have been totally idle. As my server (Centos 7) is running on an Amazon ‘T2’ instance which relies on never running out of ‘CPU credit’ – which for my machine means only using an average of 20% CPU – this was a concern. Another half day of this and I would have been sunk.

    I read your article, not thinking I was going to find anything to help … saw your item #5 … ran the ‘date’ command … and CPU has dropped to zero.



Submit a Comment

Your email address will not be published. Required fields are marked *

Bobcares is a server management company that helps businesses deliver uninterrupted and secure online services. Our engineers manage close to 52,500 servers that include virtualized servers, cloud infrastructure, physical server clusters, and more.