所以我有一台服务器,并且我被报告来自几个位置的不同/异常内存,我无法理解这一切意味着什么。
举个例子:
root@****:~# free -m
total used free shared buffers cached
Mem: 16078 13857 2220 0 227 11032
您将看到我有 16G 内存,并且显示其中近 14G 已被使用,但事实并非如此。现在我不再盲目,我看到它显示“缓存:11032”,但这是什么意思?为什么这么多内存会被“缓存”?缓存是为了什么?为什么?
top
报告的内容与 相同free
,但htop
报告的内容不同:htop 输出 http://mc.socialshock.net/screenshots/2012-06-13_1915.png(2572/16078)
此外,webmin 的报告与 htop 相同。
那么它到底是什么呢?所有这些内存都用在了哪里,即使它被“缓存”,应用程序在需要时是否仍可以使用它?
答案1
缓存是文件系统。这样做的目的是将最常访问的文件保存在内存中。这样,它就不必一路访问磁盘再返回 - 从而使其更加高效。
不过,不要担心,当您的系统需要实际内存来执行某些操作时,它会将空间从缓存中交换出来。
答案2
如果有人发现这个问题,这里是我问完这个问题后找到的一个很好的资源。