HiveBrain v1.2.0
Get Started
← Back to all entries
patternsqlMinor

mysqld constant CPU usage when absolutly nothing is connected and no queries

Submitted by: @import:stackexchange-dba··
0
Viewed 0 times
constantmysqldqueriesusagenothingconnectedwhenandcpuabsolutly

Problem

I'm using mysql on a windows development machine, and all was good for a long time.

But today my PC was running slowly, and I noticed mysqld.exe is using between 25% and 40% CPU.

I've tried rebooting and giving it some time, but the CPU usage is fairly constant even when idleing on the desktop.
I've noticed the hard drive is working quite hard too, probably because of mysqld

I'm certain nothing is using the server as the only thing that would connect to it is the application on my local machine that I am developing, and that is not running.

But, just to be sure I ran the following statements

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqladmin -u root -p status
Enter password: **********
Uptime: 995  Threads: 1  Questions: 2  Slow queries: 0  Opens: 67  Flush tables: 1
Open tables: 60  Queries per second avg: 0.002

C:\Program Files\MySQL\MySQL Server 5.6\bin>mysqladmin -u root -p processlist
Enter password: **********
+----+------+----------------+----+---------+------+-------+------------------+
| Id | User | Host           | db | Command | Time | State | Info             |
+----+------+----------------+----+---------+------+-------+------------------+
| 2  | root | localhost:1775 |    | Query   | 0    | init  | show processlist |
+----+------+----------------+----+---------+------+-------+------------------+


which also seem to show the sever isn't doing anything.

So, what gives? What is mysqld doing?

Edit: I did recently kill an update statement that was taking a long time. Could this have anything to do with it?

Solution

Yes, your kill statement is the likely cause.

The command SHOW PROCESSLIST will only show you what is happening in foreground threads. InnoDB is likely rolling back the transaction in the background. Some diagnostics you might find useful:

-
SHOW ENGINE INNODB STATUS - see what is happening inside of InnoDB. Under 'TRANSACTIONS' you should see your killed staetment being rolled back.

-
SELECT * FROM performance_schema.threads - show all threads in MySQL.

-
MySQL Workbench 6.1 includes Performance Schema Reports, exposing some of this data in a visual form.

Context

StackExchange Database Administrators Q#68965, answer score: 9

Revisions (0)

No revisions yet.