linux释放缓存内存

linux释放缓存内存

   小白     2021年2月23日 09:32     298    

当使用free -m或者top命令时都会看到一个参数buff/cache

free

1.png

top

2.png

虽然从命令看free剩余量很少,但是其并不是真正的可用内存的量,而系统真正可用内存是free+buff/cache的和。

 

buff/cache分别为buffer cachepage cache

buffer cache:系统和块设备进行读写时,缓存块设备的数据。

page cache:文件系统中的文件数据的缓存。

 

如何释放cache

首先使用sync指令,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。否则在释放缓存的过程中,可能会丢失未保存的文件。

sync

这个文件可以设置的值分别为123。它们所表示的含义为:

echo 1 > /proc/sys/vm/drop_caches:表示清除pagecache

echo 2 > /proc/sys/vm/drop_caches:表示清除回收slab分配器中的对象(包括目录项缓存和inode缓存)。slab分配器是内核中管理内存的一种机制,其中很多缓存数据实现都是用的pagecache

echo 3 > /proc/sys/vm/drop_caches:表示清除pagecacheslab分配器中的缓存对象。

 

在内核中对应的是

vm.drop_caches = 0

但是不要更改内核中的这个参数,只需要进行临时的修改即可。

 

参考:https://www.cnblogs.com/rocky-AGE-24/p/7629500.html

 

 

 


文章评论

0

其他文章