当linux频繁读取文件后,物理内存会很快被用完,当程序结束后,内存不会被正常释放,而是一直caching,因此有必要手动清理系统缓存释放内存。
linux中清除缓存,具体步骤:
1、linux缓存包括两部分,dns缓存和浏览器缓存。应先清除dns缓存,再清除浏览器缓存。
2、清除dns缓存。可重新启动NSCD服务来达成清除DNS Cache的效果。在linux输入框中输入命令service nscd restart或是nscd restart命令,并执行此命令即可。
3、清除浏览器缓存。在linux设置找到浏览器,打开浏览器记录,点击清除缓存,之后重新打开浏览器即可。
先执行sync命令
sync;sync;sync
手动执行sync命令(描述:sync命令运行sync子例程。如果必须停止系统,则运行sync命令以确保文件系统的完整性。sync命令将所有未写的系统缓冲区写到磁盘中,包含已修改的i-node、已延迟的块I/O和读写映射文件。
清理linux内存缓存
echo 3 >/proc/sys/vm/drop_caches
关键的配置文件/proc/sys/vm/drop_caches。这个文件中记录了缓存释放的参数,默认值为0,也就是不释放缓存。他的值可以为0~3之间的任意数字,代表着不同的含义:
0 – 不释放
1 – 释放页缓存
2 – 释放dentries和inodes
3 – 释放所有缓存
此指令输入立即生效,意在释放所有缓存。
查看内存
free -h
total used free shared buff/cache available
Mem: 3.6Gi 967Mi 1.2Gi 113Mi 1.4Gi 2.3Gi
Swap: 4.0Gi 0B 4.0Gi
total——总物理内存
used——已使用内存,一般情况这个值会比较大,因为这个值包括了cache+应用程序使用的内存
free——完全未被使用的内存
shared——应用程序共享内存
buffers——缓存,主要用于目录方面,inode值等(ls大目录可看到这个值增加)
cached——缓存,用于已打开的文件
恢复默认设置
缓存可以提升系统的运行效率,如果发现系统内存经常不够用,应该考虑添加内存,而不是经常清理
echo 0>/proc/sys/vm/drop_caches
Comments | NOTHING