前言:
如今大家对“清除linux缓存”大约比较关心,朋友们都想要知道一些“清除linux缓存”的相关文章。那么小编在网络上搜集了一些对于“清除linux缓存””的相关文章,希望看官们能喜欢,朋友们一起来了解一下吧!发生什么事?
Linux正在借用未使用的内存进行磁盘缓存。这让人觉得内存耗尽了,服务器快要撑不住了,但事实并非如此!一切都很好!
它为什么这么做?
磁盘缓存使系统更快、响应更快!除了让新手感到困惑之外,没有任何负面影响。它不会以任何方式从应用程序中拿走内存,永远不会!
如果我想运行更多应用程序呢?
如果您的应用程序需要更多内存,它们只需收回磁盘缓存。磁盘缓存总是可以立即返回给应用程序!你的内存不低!
我需要更多的交换吗?
不,磁盘缓存只是借用应用程序当前不需要的内存。它不会使用交换。如果应用程序需要更多内存,它们只需从磁盘缓存中取回。他们不会开始交换。
如何阻止Linux这样做?
不能禁用磁盘缓存。任何人想要禁用磁盘缓存的唯一原因是,他们认为这会占用应用程序的内存,但事实并非如此!磁盘缓存使应用程序加载更快、运行更顺畅,但它永远不会占用它们的内存!因此,绝对没有理由禁用它!
然而,如果您发现自己需要快速清除一些磁盘缓存来解决另一个问题,比如VM运行异常,您可以使用下面的方法强制linux以非破坏性方式删除缓存。
释放页面缓存(free pagecache):
# echo 1 > /proc/sys/vm/drop_caches
释放目录和索引节点缓存(dentries and inodes):
# echo 2 > /proc/sys/vm/drop_caches
释放页面缓存、目录缓存和索引节点缓存(free pagecache, dentries and inodes):
echo 3 > /proc/sys/vm/drop_caches
为什么使用top和free会说我所有的内存都被使用了呢?
这只是术语上的不同而已。您和Linux都同意应用程序占用的内存是“已用”的,而不用于任何用途的内存是“空闲的”。但是,如何计算当前用于某个应用程序但仍可供其它应用程序使用的内存?您认为将该内存计算为“空闲”或“可用”。但Linux将其计算为“已使用”,但也“可用”:
这就是top和free所说的“缓冲区”和“缓存”。由于您的认为和Linux的术语不同,您可能会认为自己的操作系统内存不足,而实际情况并非如此。
我怎么看我到底有多少空闲内存?
查看操作系统在不交换的情况下可用内存,请运行命令free-m并查看“available”列:
如果你只是天真地看“used”和“free”列,你会认为你的服务器内存使用率达到99%,而实际上只有47%!
对于2016年之前安装的Linux操作系统,请查看“-/+buffers/cache”行中的“free”列。
我什么时候开始担心?
运行一段时间后,具有足够内存的健康Linux系统将显示以下预期的无害行为:
空闲(free)内存接近于零。使用(used)的内存接近于总内存。可用(available)内存(or "free + buffers/cache") 占总内存的20%以上。交换分区(swap)使用没有变化。
您可能需要查看的真正内存不足情况的警告信号:
可用(available)内存 (or "free + buffers/cache")接近于零。交换空间(swap)的使用在不断增大或者波动。使用命令dmesg查看系统日志并用关键词“oom-killer”进行过滤发现“the OutOfMemory-killer在运行。
标签: #清除linux缓存