【Linux】Linux服务器缓存清理释放
$ free -h
total used free shared buff/cache available
Mem: 7.6G 3.2G 471M 395M 3.9G 3.6G
Swap: 0B 0B 0B
image.png
# root 用户执行
sync && echo 1 > /proc/sys/vm/drop_caches
sync && echo 2 > /proc/sys/vm/drop_caches
sync && echo 3 > /proc/sys/vm/drop_caches
image.png
这三个命令都是用于清空Linux系统中的缓存,以便释放内存空间。
Linux上的sync命令是用来将文件系统中的数据同步到磁盘中,确保数据的持久化存储,避免数据丢失或损坏。
当我们对文件系统进行修改时,数据并不是实时写入磁盘的,而是先缓存在内存中,等到一定时间或缓存空间满了再写入磁盘。但是如果在这个过程中系统崩溃了,这些缓存中的数据就会丢失,导致文件系统的不一致性或数据的损坏。因此,使用sync命令可以将缓存中的数据立即写入磁盘,保证数据的安全性。
sync命令的使用非常简单,只需要在命令行中输入“sync”即可。
在大多数情况下,我们不需要手动使用sync命令,因为Linux系统会自动定期执行sync操作,确保数据的安全性。但是在一些特殊情况下,比如在进行重要文件的修改或备份操作时,可以手动执行sync命令,以确保数据的及时保存。
第一个命令“sync && echo 1 > /proc/sys/vm/drop_caches”表示先执行sync命令,将所有缓存数据写入磁盘中,然后将“1”写入到/proc/sys/vm/drop_caches文件中,表示清空页缓存。
第二个命令“sync && echo 2 > /proc/sys/vm/drop_caches”表示先执行sync命令,将所有缓存数据写入磁盘中,然后将“2”写入到/proc/sys/vm/drop_caches文件中,表示清空目录缓存和页缓存。
第三个命令“sync && echo 3 > /proc/sys/vm/drop_caches”表示先执行sync命令,将所有缓存数据写入磁盘中,然后将“3”写入到/proc/sys/vm/drop_caches文件中,表示清空目录缓存、页缓存和inode缓存。
需要注意的是,这些命令可能会导致系统变慢,因为它们会强制清空缓存,而下次读取相同的数据时需要重新加载到缓存中,会消耗更多的时间和资源。因此,建议在必要时才使用这些命令。
参考
Linux内存占用和释放案例分析
https://zhuanlan.zhihu.com/p/521290111
https://cloud.tencent.com/developer/article/1701200?from=article.detail.1861892
echo N>/proc/sys/vm/drop_caches清理缓存
https://blog.csdn.net/XD_hebuters/article/details/79608136