什么是使用我的所有内存? 了解top的输出

我已经阅读了一些top常用的内存使用问题,但我不认为他们回答了这个问题。

这是最重要的部分:

 top - 01:11:41 up 4 days, 1:06, 3 users, load average: 0.00, 0.03, 0.26 Tasks: 86 total, 1 running, 84 sleeping, 0 stopped, 1 zombie Cpu(s): 0.4%us, 0.4%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 1022816k total, 986704k used, 36112k free, 11200k buffers Swap: 1048572k total, 419088k used, 629484k free, 408172k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2022 django 20 0 463m 87m 688 S 0.4 8.7 0:44.06 redis-server 6047 django 20 0 106m 25m 3900 S 0.4 2.6 0:16.57 python 6046 django 20 0 40892 13m 2852 S 0.0 1.4 0:00.14 python 6887 postgres 20 0 98752 5240 4100 S 0.0 0.5 0:00.60 postgres 6512 root 20 0 70820 2528 1776 S 0.0 0.2 0:00.03 sshd 3614 root 20 0 70820 2452 1696 S 0.0 0.2 0:00.03 sshd 6892 postgres 20 0 99028 2044 720 S 0.0 0.2 0:00.53 postgres 12983 django 20 0 18332 1968 1156 S 0.0 0.2 0:00.06 bash 3627 joe 20 0 71148 1660 632 S 0.0 0.2 0:00.84 sshd 6890 postgres 20 0 98752 1640 500 S 0.0 0.2 0:02.59 postgres 3628 joe 20 0 18056 1588 1056 S 0.0 0.2 0:00.10 bash 6537 postgres 20 0 18000 1580 1100 S 0.0 0.2 0:00.04 bash 6893 postgres 20 0 70296 1564 296 S 0.0 0.2 0:00.38 postgres 708 mysql 20 0 166m 1560 408 S 0.0 0.2 3:08.15 mysqld 9221 root 20 0 31724 1456 1148 S 0.0 0.1 0:00.01 sudo 

这表明使用了1022816k中的986704k(我做了大约96%)。 然而前3名stream程的百分比合计为12.7%。 有些东西几乎全部使用了我的RAM,我不知道它是什么。 free给我看类似的数字。

任何关于试图找出使用这一切的build议?

(我注意到有一个僵尸进程,是不是?)

简短的回答是,你的内存的其余部分是用来caching你的应用程序。

长的答案可以在这里find。

只是在那里发生的任何事情,很可能是从磁盘读取或写入数据。 让自由记忆在如此多的层面上是一个失败的主张:

1)如果再次需要数据,并且系统使内存空闲,则必须从磁盘读取数据。

2)免费使用内存需要努力,如果内存需要其他的东西,系统将不得不再次使用,浪费加倍。 将内存直接从一个用户转移到另一个用户更为有效。

3)对内存的需求很低。 所以很less需要空闲的内存。

所以,现代操作系统只会使内存空闲,如果没有任何有用的东西,它们可能在内存中占有一席之地,或者如果有空闲内存的需求。 否则,可用内存浪费内存。 这不是说如果你今天用得less些,你可以用更多的明天。