3

I have a Ubuntu 14.04 server running half a dozen wordpress sites. Total traffic to the server is on the order of 30k page views a day.

Over the past couple months, with page views and network traffic roughly flat, my disk I/O has been trending up significantly. It has doubled over the past month. When I run iotop, I can see that mysqld (v. 5.5) is constantly writing to disk at a rate of around 5MB per minute. I can't think of anything happening on any of the sites that would generate so much writing.

I have spent a lot of time reading mysql tuning tutorials and adjusting variables (mostly to do with tmp table size, and query cache parameters) and nothing I have tried has made any difference. My current guess is that there is probably a bad query in one of the wordpress plugins in use. But there are a lot of plugins spread over half a dozen wordpress installs and I don't know where to look.

Is there some way that I can pinpoint what exactly is causing mysqld to be writing to the disk so much?

UPDATE : This question was explored in better detail and answered thoroughly here.

1
  • I would appreciate if whoever downvoted my question would leave a comment saying why.
    – pjv
    Jan 15, 2015 at 16:16

3 Answers 3

1

Two ideas off the top of my head.

  1. mytop - a top clone of MySQL
  2. iotop - a python top-like program specifically for io
3
  • thanks, i mentioned using iotop in my question - that's how i know that it is mysqld that is doing the disk io. i didn't mention it but i am also already using mytop (which is a very useful suggestion). if i am currently right about what is causing the io, the queries go by so fast that mytop doesn't catch them. but it is a great little utility.
    – pjv
    Jan 15, 2015 at 16:47
  • re: iotop, ya, I saw that after I posted. Didn't read carefully before answering. re: mytop: -s or -delay seconds How long between display refreshes. Default: 5
    – dmourati
    Jan 15, 2015 at 17:03
  • changed it to 1 and saw some things i wasn't seeing with 5, but still no smoking gun. one thing i saw might have led me in the right direction. i'll find out early tomorrow morning when i can delete a bunch of records in a bloated table.
    – pjv
    Jan 16, 2015 at 1:27
0

Take a look at the mysql processlist. mysql -p -e "show processlist". Or even a "show full processlist". It will give you a list of currently running queries.

1
  • thanks. unfortunately whatever is causing mysqld to write must be a very quick query and it doesn't linger in the process list. right now i am thinking it might be a query that is fast but causes a large tmp table write over and over with each request on one of the wordpress sites. if/when i confirm, i'll write up the answer.
    – pjv
    Jan 15, 2015 at 16:50
0

This question was explored in better detail and answered thoroughly here.

1
  • The link does not work :(
    – Zsolti
    Sep 11, 2015 at 13:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.