在Linux系统中,根据其内置的内存管理机制,在内存中暂时不用的数据会被存储到buff_cache内存缓冲区中。在内存需要使用到这些数据时可以直接快速的从缓冲区中调用这个数据,所以平时在计算内存剩余量时,应该是free+buff_cache。
释放内存:
#sync
#echo 3 > /proc/sys/vm/drop_caches
#echo 0 > /proc/sys/vm/drop_caches
1、使用sync命令在释放内存之前,先将缓冲区中的数据存储到磁盘,保障文件系统的完整性。
2、linux系统中/prco为虚拟的文件系统,其中存储的文件和数据都是内存中实时的数据信息。不如/proc/cpuinfo存储这cpu使用率等实时信息。我们通过命令将系统代号重定向到drop_caches文件中,代号意思如下:
①0:0是系统默认值,表示不是释放内存,并由操作系统自动分配
②1:释放页缓存
③2:释放dentries和inodes
④3:释放所有内存
将3重定向到drop_caches文件中来释放所有内存,再通过将0重定向到drop_caches文件,最后由系统来管理和分配内存空间。
释放虚拟内存:
swapoff -a&swapon -a