如何清空Linux缓冲与缓存

有时我们需要通过free命令来查询系统内存使用情况,很多朋友会被第一行的数值吓到,used值巨高,free则所剩无几,其实这并非真正的内存占用。

Linux和Windows不一样,Linux的内存机制存在buffer和cache这两个功能:

  • cache(缓存):是指把读取出来的数据保存在内存当中,当再次读取时,不用读取硬盘而直接从内存当中读取,加速了数据的读取过程

  • buffer(缓冲):是指在写入数据时,先把分散的写入操作保存到内存当中,当达到一定程度再集中写入硬盘,减少了磁盘碎片和硬盘的反复寻道,加速了数据的写入过程

这两个功能同样会占用内存空间,但是这个空间是可以随时调用的,下面我们就来说下,如何清空Linux缓冲与缓存。

buffer缓冲清空命令sync,这个命令会迅速将buffer中数据写入硬盘,然后清空buffer中数据。

cache缓存清空命令有三个:

  • To free pagecache:

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

  • To free dentries and inodes:

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

  • To free pagecache, dentries and inodes:

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

切记缓存不要随意清空,清空cache命令最好在低负载时使用,不然可能会导致系统运行出问题!