Quote:
|
The processor hasn't really gottent to more than 80% usage.
|
Either it's 80% idle, or your server is under pretty much load already.
And 10 users should be a breeze to any dedicated server...
Just to help you interpret you, here is a short tutorial about how to read a top output.
Top is separated in 2 areas: the header, that gives you information about the overall health of the server, and the processes that gives you a detailed view of running programs
The header is like this:
Code:
top - 22:49:18 up 10 days, 20:05, 2 users, load average: 0.17, 0.11, 0.02
Tasks: 425 total, 1 running, 424 sleeping, 0 stopped, 0 zombie
Cpu0 : 2.1%us, 0.5%sy, 0.5%ni, 95.1%id, 1.6%wa, 0.0%hi, 0.1%si, 0.0%st
Cpu1 : 2.1%us, 0.5%sy, 0.6%ni, 96.7%id, 0.2%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 2073728k total, 1849924k used, 223804k free, 87648k buffers
Swap: 1461904k total, 195264k used, 1266640k free, 1125400k cached
From top left to bottom right, you have:
1) The uptime for the server and how many users are logged in
2) The average load with 3 values: instant value, average at 5 minutes, average at 15 minutes
The load is a strange value in itself, in the meaning that a load of 1 for a system with 1 core means that the core is fully used.
There is no "free cycles", but nothing stays in the queue.
That means, that for a dual xeon (4 cores) a load of 4 is nothing to be too dangerous.
But obviously, the lower the better.
3) How many processes are instantiated, running, stopped (or paused) and sleeping (zombies)
4) for each cpu, how many percent of the cpu cycles are used by the user process (us), the system processes like swap (sy), niced processes (their priority have been changed) (ni), idle (id), or are waiting on something else (wa).
This wa % is usually high when your computer waits for datas to be written (or read) to the hard disks.
It means that the cpu must wait that a physical operation completes before going on.
And for the 3 next cpu % fields, I don't know what they mean, I have to admit.
What you should look (first) here, are the idle and wait values.
A low idle and high wait, there is something wrong with the hard disk. Either it's going to die, or it's over a network, or it's ridiculously slow, but it clogs your server.
At contrario, a high system or user % means that some processe(s) are taking much of the available cpu.
Look in the lower part of the window which process(s) take most of the cpu.
hint: you can refresh the process list with the space bar
5 and 6) the RAM usage, and the SWAP usage. Nothing much to look at the RAM part. Don't expect much free memory, Linux and unixes are using free ram as a cache, making the cache smaller when program needs more memory.
This means that your free memory will always stay pretty low.
But, take care of the swap value.
Remember the high WAIT cpu % value, it may be because the server takes much of his time swapping the system to the disk, then swapping it back in ram while putting the db in swap, then putting back the db in ram, but the web server in swap....
This can be the reason your server cannot handle more user: not enough ram...
As a result, it ends up swapping all the time, spending more time moving bits from ram to swap than doing a real job.
Here, for example, I have 19 Mb of swap used in a 2 Gb system. It's pretty reasonable (especially giving all the services that are running on it)
If you see more than 100 Mb being used by the swap, then you need more ram.
Or you need to stop some services from the server, but usually, you need more ram.