一般系统的关键配置文件 proc sys VM drop _ cache是不会自动释放内存的。该文件记录了缓存释放的参数,默认值为0,即不释放缓存。它的值
一般系统的关键配置文件/proc/sys/VM/drop _ cache是不会自动释放内存的。该文件记录了缓存释放的参数,默认值为0,即不释放缓存。它的值可以是0到3之间的任意数字,代表不同的含义:
0: 0是系统默认值。默认情况下,这意味着不释放内存,由操作系统自动管理。
1:释放页面缓存
2.释放dentries和inodes
3:释放所有缓存
实际操作:
因此,根据上面的解释,可以通过将1、2和3分别重定向到drop _ caches来释放内存。通常,通过将3重定向到一个文件来释放所有缓存,从而释放内存。
我们举个例子。例如,这里只释放页面缓存。首先,使用free -h检查当前剩余的内存。
目前剩余内存约为570M,buff/cache为1.3G g,按照上面的说法,真正的剩余内存应该在1.8G g左右,首先写入文件系统:
同步
然后执行以下命令来释放内存(页面缓冲区/缓存):
echo 1"/proc/sys/VM/drop _ cache
执行后,再次检查剩余内存:
你会发现内存被释放了,可用内存确实变成了1.8G左右
此时,内存被释放,现在drop _ caches中的值为1。如果您希望操作系统现在重新分配内存,只需将drop _ caches的值设置为0:
echo 0"/proc/sys/VM/drop _ cache
另外需要注意的是,在生产环境下,不要频繁释放内存,只在必要的时候清理内存。更重要的是,要从应用层面优化内存的利用和释放,经常清理应用中一些可能只是暂时被封锁的bug,所以更重要的是调优程序,剩下的交给操作系统来管理责任编辑:CC。
声明本站所有作品图文均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系我们