Bootstrap

Linux偷偷“吃”了我的内存?

不知道刚使用Linux的小伙伴有没有遇到过这样的情况,有一天你看到自己的内存空间变少了,在一探究竟后,发现幕后“真凶”竟然是Linux!这到底怎么回事呢?

发生了什么事?

其实这是Linux正在借用未使用的内存进行磁盘缓存。这意味着内存看起来变少了,但实际上并没有。Linux之所有这么做,主要是为了让系统运行的更快,更流畅。除了让新手感到困惑外,它不会以任何方式占用应用程序的内存。

我如果想运行更多的应用程序怎么办?

当然,Linux确实借用了你的内存,注意这里是借用,不是占用。当应用程序需要更多的内存运行时,它们可以拿回被Linux借去用来做磁盘缓存的那块内存。Linux只是暂时借用,所以它可以立即将借走的内存还给应用程序,你的内存并没有实质上的减少。

我需要更多的swap空间吗?

Linux磁盘缓存只是借用了应用程序目前不需要的内存。它不会使用Swap空间。如果应用程序需要更多的内存,只需要从磁盘缓存中取回就可以了。这个过程不会用到Swap空间。

我就想禁止磁盘缓存,这样做有害吗?

可能你还是觉得Linux占用了你的应用程序内存,所以你就想阻止Linux进行磁盘缓存。但你最好别这么做。因为Linux进行磁盘缓存会使应用程序的加载速度更快,运行更流畅,除非你不希望它更快,更流畅。磁盘缓存在实质上永远都不会占用内存,所以你也没理由禁用它。

当然,如果你发现自己需要通过清除一些内存来解决一个问题的时候,比如说你的虚拟机不听你的话了,你就可以用下面的这个命令来无损的删除Linux的磁盘缓存。

echo 3 
;