不知道刚使用Linux的小伙伴有没有遇到过这样的情况,有一天你看到自己的内存空间变少了,在一探究竟后,发现幕后“真凶”竟然是Linux!这到底怎么回事呢?
发生了什么事?
其实这是Linux正在借用未使用的内存进行磁盘缓存。这意味着内存看起来变少了,但实际上并没有。Linux之所有这么做,主要是为了让系统运行的更快,更流畅。除了让新手感到困惑外,它不会以任何方式占用应用程序的内存。
我如果想运行更多的应用程序怎么办?
当然,Linux确实借用了你的内存,注意这里是借用,不是占用。当应用程序需要更多的内存运行时,它们可以拿回被Linux借去用来做磁盘缓存的那块内存。Linux只是暂时借用,所以它可以立即将借走的内存还给应用程序,你的内存并没有实质上的减少。
我需要更多的swap空间吗?
Linux磁盘缓存只是借用了应用程序目前不需要的内存。它不会使用Swap空间。如果应用程序需要更多的内存,只需要从磁盘缓存中取回就可以了。这个过程不会用到Swap空间。
我就想禁止磁盘缓存,这样做有害吗?
可能你还是觉得Linux占用了你的应用程序内存,所以你就想阻止Linux进行磁盘缓存。但你最好别这么做。因为Linux进行磁盘缓存会使应用程序的加载速度更快,运行更流畅,除非你不希望它更快,更流畅。磁盘缓存在实质上永远都不会占用内存,所以你也没理由禁用它。
当然,如果你发现自己需要通过清除一些内存来解决一个问题的时候,比如说你的虚拟机不听你的话了,你就可以用下面的这个命令来无损的删除Linux的磁盘缓存。
echo 3