3

I am a bit worried about my linux vserver box.
No more memory is left.

To investigate this issue, i was looking at "top". But it deeply confuses me.

It seems that no more memory is left, altough the process list in top never adds up to 100%

top - 13:39:05 up 10:46,  1 user,  load average: 0.08, 0.02, 0.00  
Tasks:  22 total,   1 running,  21 sleeping,   0 stopped,   0 zombie  
Cpu(s): 20.5%us,  1.8%sy,  0.0%ni, 77.5%id,  0.0%wa,  0.0%hi,  0.2%si,  0.0%st  
**Mem:    512000k total,   512000k used,        0k free**,        0k buffers  
Swap:  1024000k total,        0k used,  1024000k free,   431948k cached  

 PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND  
 3718 ts3       20   0  193m 9600 4736 S  1.0  1.9   3:59.03 ts3server_linux  
 3698 ts        39  19 90540 1660 1260 S  0.3  0.3   0:52.25 server_linux  
10152 root      20   0 86124 3376 2640 S  0.3  0.7   0:00.50 sshd  
25061 root      20   0 12676 1096  852 R  0.3  0.2   0:00.01 top  
    1 root      20   0 10364  656  536 S  0.0  0.1  21:17.31 init
 3631 root      20   0 37392  976  724 S  0.0  0.2   0:00.00 rsyslogd  
 3646 root      20   0 62692 1220  652 S  0.0  0.2   0:00.00 sshd  
 3677 root      20   0 19720 1148  584 S  0.0  0.2   0:00.02 crond  
 5092 root      20   0  8732 1232  980 S  0.0  0.2   0:00.01 mysqld_safe  
 5376 mysql     20   0  409m  58m 6432 S  0.0 11.7   0:13.91 mysqld  
10187 root      20   0 11068 1640 1172 S  0.0  0.3   0:00.10 bash  
11177 root      20   0 86120 3392 2636 S  0.0  0.7   0:00.03 sshd  
11180 root      20   0 54060 2052 1500 S  0.0  0.4   0:00.01 sftp-server  
24431 root      20   0  377m  12m 6844 S  0.0  2.4   0:00.02 httpd  
24433 apache    20   0  389m  35m  17m S  0.0  7.0   0:00.11 httpd  
24434 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24435 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24436 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24437 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24438 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24439 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  
24440 apache    20   0  377m 6112  472 S  0.0  1.2   0:00.00 httpd  

free also thinks no more memory is left

-bash-3.2# free -m
             total       used       free     shared    buffers     cached  
Mem:           500        500          0          0          0        421  
-/+ buffers/cache:         78        421  
Swap:         1000          0       1000  
0

4 Answers 4

16

"Help! Linux ate my RAM!"

7

free is telling you that 421M of the memory is being used for buffers/cache. That's good, and that's normal. Linux will give you that memory if you need it, but it uses it to make disk access faster when you don't.

3

Your system is using your memory. That's good. If you don't use the memory now, it's not like you get more later. Free RAM does you no good, only memory that is in use can improve your system's performance.

1

The process list in top is not usually a complete list of all processes running on the system. It adjusts to the size of the window. Try using: ps -aux

2
  • ps(1) for GNU coreutils - "Note that "ps -aux" is distinct from "ps aux". The POSIX and UNIX standards require that "ps -aux" print all processes owned by a user named "x", as well as printing all processes that would be selected by the -a option. If the user named "x" does not exist, this ps may interpret the command as "ps aux" instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon." When run... "Warning: bad ps syntax, perhaps a bogus '-'? See procps.sf.net/faq.html"
    – Hello71
    Apr 28, 2011 at 0:38
  • Yeah, top only print one full screen of information by default as more lines will cause the table to scroll out of the screen and update will be awkward.
    – billc.cn
    Aug 24, 2011 at 10:13

You must log in to answer this question.