This is my "top" screen. Now it's 2.96. Sometimes it goes above 3! I've read that it's not good. How to investigate and fix it?
2 Answers
You seem to be seriously using a lot of swap there. You have a relatively small amount of memory allocated to cache/buffers.
Your %wa is at 49.5%. That value corresponds to the CPU waiting for I/O to complete.
I suspect you have that is or was using a large ammount of memory. But perhaps you also have something performing a lot of I/O
as well.
Fire up iotop, and you might get a better picture of the I/O situation.
P.S. If you are not using ksplice, then you are almost certainly running a kernel with known vulnerabilities. 354 days of uptime is too long.
- 128,755
- 40
- 271
- 413
-
I'm sorry my server does not have iotop command. – emeraldhieu Mar 02 '12 at 02:50
-
Can you install it? At least from the looks of it you have an `I/O` problem. You will probably need a tool that looks at `I/O` to find the answer. – Zoredache Mar 02 '12 at 02:53
-
Just curious about what is up with the downvote? Did I post something wrong, or omit something obvious? – Zoredache Mar 02 '12 at 03:53
Nothing wrong with your top
.
MySQL database daemon is eating most of the CPU. You can press C to find the exact commands/instructions inside the top
view.
If it is a surprise for you that your MySQL database is so busy then you need to investigate what is using it (webserver, application?). There are tools for this, including those provided by native MySQL packages.
- 1,768
- 4
- 30
- 51
-
One example of such native tool: http://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html – Alex Mar 02 '12 at 02:33
-
3Why do you suspect mysql if it is only at `7.6%` CPU and `36%` Memory? It does seem to be busiest, but the problem seems to be `I/O` see the `%wa`. Not saying it isn't mysql, but I think I would want to look at `iotop` first. – Zoredache Mar 02 '12 at 02:36
-
Agree with Zoredache. Its a common misconception among newbies that load is directly related to CPU usage. Sometimes it is related yes, but not always. Also the general rule for full utilization is when load is equal to the number of cores (though hyperthreading screws this up). – phemmer Mar 02 '12 at 03:05
-
1The idea came from the fact that the server seems to only have mysql running (the other processes seem to be standard packages installed with a typical linux distro). Hence the suggestion to profile MySQL. – Alex Mar 02 '12 at 03:55