弹性云服务器 ECS-Linux操作系统云服务器中buffer和cache占用内存怎么办?:问题分析

时间:2024-05-21 10:26:57

问题分析

在 Linux 的内存管理中,buffer是Linux内存中的Buffer cache。cache是Linux内存中的Page cache。

  • Buffer cache:主要是当系统对块设备进行读写的时候,对块进行数据缓存的系统来使用,即对块的操作会使用buffer cache进行缓存。

    例如:当对一个文件进行写操作的时候,page cache 的内容会被改变,而buffer cache则可以用来将page标记为不同的缓冲区,并记录是哪一个缓冲区被修改了。内核在后续执行脏数据的回写writeback时,就不用将整个page写回,而只需要写回修改的部分即可。

  • Page cache:主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件有read/write操作的时候。Linux默认会将读取的文件内容缓存在内存中,方便后续使用。

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

support.huaweicloud.com/trouble-ecs/ecs_trouble_0336.html