如何在Linux上刷新内存缓存和缓冲区缓存

时间:2019-05-19 01:26:06  来源:igfitidea点击:

运行了一段时间的Linux系统常常会遇到内存不足的问题。
原因是Linux使用了如此多的内存用于磁盘缓存,因为如果RAM没有被使用,它就会被浪费。
缓存用于保存操作系统经常使用的数据。
如果从缓存读取数据的时间比从硬盘读取数据快1000。

对于操作系统来说,从内存中的缓存中获取数据是有好处的。
但是如果缓存中没有找到任何数据,它就从硬盘中读取。
所以刷新缓存内存不成问题。
本文详细介绍了如何在Linux服务器上刷新内存缓存。

清除Linux内存缓冲区缓存

有三种可用的方法可以刷新Linux内存的缓存。
按照要求使用以下之一。

释放缓存内存中的页面缓存、dentries和索引节点

$ sync; echo 3 > /proc/sys/vm/drop_caches

释放 dentries和inode

$ sync; echo 2 > /proc/sys/vm/drop_caches

释放页面缓存

$ sync; echo 1 > /proc/sys/vm/drop_caches

使用Cron定期刷新缓存

在crontab中使用以下操作以按常规间隔自动刷新缓存。
在系统上使用' crontab -e '命令编辑cron。

$ crontab -l

0 * * *  * sync; echo 3 > /proc/sys/vm/drop_caches

上述cron将每小时执行一次,并刷新系统上的内存缓存。

查找Linux中使用的缓存内存

使用 free命令查找Linux系统使用的缓存内存。
free命令的输出如下所示

$ free -m

输出示例

total       used       free     shared    buffers     cached
Mem:         16050      15908        142          0        120      <orange>14953</orange>
-/+ buffers/cache:        834      15216
Swap:            0          0          0

最后一列显示了缓存内存(14953 MB)的系统。 -m选项用于显以MB显示内存的信息。