文档首页 > > 故障排除> Linux操作系统> Linux云服务器buffer和cache导致内存不足怎么办?

Linux云服务器buffer和cache导致内存不足怎么办?

分享
更新时间: 2019/08/16 11:20

问题描述

Linux操作系统长期运行后,使用free命令查看系统内存,发现剩余内存不足,大部分是buffers和cached。

根因分析

在 Linux操作系统的内存管理中,这里的buffer指Linux 内存的:Buffer cache。

  • cache 指 Linux 内存中的:Page cache。Page cache 主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有 read/write 操作的时候。Linux默认会将读取的文件内容缓存在内存中,方便后续使用。
  • Buffer cache 则主要是设计用来在系统对块设备进行读写的时候,对块进行数据缓存的系统来使用。这意味着某些对块的操作会使用 buffer cache 进行缓存,比如当我们对一个文件进行写操作的时候,page cache 的内容会被改变,而 buffer cache 则可以用来将 page 标记为不同的缓冲区,并记录是哪一个缓冲区被修改了。这样,内核在后续执行脏数据的回写writeback时,就不用将整个 page 写回,而只需要写回修改的部分即可。

Linux默认使用的是lazy模式,即内存如果还够用,则不会主动释放当前的占用的buffer和cache,如果需要内存,则会自动释放buffer和cache,所以正常情况下,cache占用高不会对系统造成影响。

约束与限制

本节操作适用于Linux系统,系统剩余内存查看不足,被buffer和cache占用的说明和处理方法。

处理方法

buffer和cache是Linux对系统设备的正常环境,占用内存并不会影响系统的运行,反而强制清除cache会导致读取磁盘数据时需要重新通过IO从磁盘读取,影响系统运行速度。

如果一定要清理系统buffer和cache,可以执行以下命令。

# echo 3 > /proc/sys/vm/drop_caches

根据内存大小可能需要几秒钟,执行完后对应内存被释放。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区