首页 >> 知识 >> 在Linux上如何清除Cache和Swap

在Linux上如何清除Cache和Swap

在Linux系统中有先进的缓存机制,会针对dentry(用于VFS,加速文件路径名到inode的转换)、Buffer Cache(针对磁盘块的读写)和Page Cache(针对文件inode的读写)进行缓存操作,有效缩短 I/O系统调用(比如read、write)的时间。但当进行了大量文件操作之后,缓存会把内存资源基本用光,导致系统缓慢,使用swap空间,影响了性能,这时就需要清理缓存了。

如何清除Cache

在清除Cache之前,先执行sync命令将缓冲区的数据写入磁盘,然后通过向文件/proc/sys/vm/drop_caches写入值1、2或3的方式来清除Cache:

注意:文件/proc/sys/vm/drop_caches只有在进行写操作时才会触发清除cache操作

123456# 1. 仅清除页面缓存(PageCache)sync; echo 1 > /proc/sys/vm/drop_caches# 2. 清除目录项和inodesync; echo 2 > /proc/sys/vm/drop_caches# 3. 清除页面缓存,目录项和inodesync; echo 3 > /proc/sys/vm/drop_caches

第一条命令是最安全的,它只会清除页面缓存,一般情况下,草莓视频在线观看APP只需要执行第一条命令即可。在生产环境中,不建议执行第三条命令,除非你明确知道你需要执行什么。

如何清除Swap

可以通过开关Swap的方式来清除Swap:

1swapoff -a && swapon -a查看内存使用情况

使用free命令来查看内存使用情况:

1234# free -h total used free shared buff/cache availableMem: 7.5Gi 1.5Gi 5.3Gi 297Mi 704Mi 5.4GiSwap: 7.8Gi 0B 7.8Gi
网站地图