每个Linux系统都有三个选项可以在不中断任何进程或服务的情况下清除缓存。
1 只清除页面缓存(pagecache)
sync; echo 1 > /proc/sys/vm/drop_caches
2 清除目录项和inode
sync; echo 2 > /proc/sys/vm/drop_caches
3 清除页面缓存、目录项和i节点
sync; echo 3 > /proc/sys/vm/drop_caches
上述命令的解释
sync命令将刷新文件系统缓冲区。分号(;)分隔的命令依次执行。在执行序列中的下一个命令之前,shell等待每个命令终止。如内核文档中提到的,写入drop_cache将清除缓存而不会终止任何应用程序或服务。echo命令正在做的任务就是写入文件。
如果你必须清除磁盘缓存,在企业和生产环境中第一个命令(“…echo 1>…”)是最安全的,它将仅仅只清除页面缓存。生产环境中不推荐使用上述第三个选项(“…echo 3 >…”),直到你知道你正在做什么。因为它会清除页面缓存,目录项和i节点。
内容借鉴:https://www.cnblogs.com/minn/p/9030764.html