当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching,因此我们很有必要手动清理系统缓存释放内存。
第一步
我们在清理缓存前应该先执行sync。
因为系统在操作的过程当中,会把你的操作到的文件资料先保存到buffer中去,因为怕你在操作的过程中因为断电等原因遗失数据,所以在你操作过程中会把文件资料先缓存。所以我们执行sync命令,先把buffe中的数据先写入到硬盘中。
sync
手动执行sync命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件)
第二步
最后,输入手动释放内存的命令
echo 3 > /proc/sys/vm/drop_caches
drop_caches的值可以是0-3之间的数字,代表不同的含义:
0:不释放(系统默认值)
1:释放页缓存
2:释放dentries和inodes
然后我们可以执行 free -m,先观察到内存已经被释放。
转载链接:
1、Linux 下清理系统缓存并释放内存
https://blog.csdn.net/Gavinmiaoc/article/details/80527717