物理内存分配与回收
Swap分区
Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。即使你的程序运行结束后,Cache Memory也不会自动释放。这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。
当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。这样,系统总是在物理内存不够时,才进行Swap交换。
系统的Swap分区大小设置多大才是最优,只能有一个统一的参考标准,具体还应该根据系统实际情况和内存的负荷综合考虑,像ORACLE的官方文档就推荐如下设置,这个是根据物理内存来做参考的。
- 4G以内的物理内存,SWAP设置为内存的2倍。
- 4 ~ 8G的物理内存,SWAP等于内存大小。
- 8 ~ 64G的物理内存,SWAP设置为8G。
- 64 ~ 256G物理内存,SWAP设置为16G。
我们可以使用 swapon -s
释放Swap分区,使用swapoff关闭交换分区,使用swapon启用交换分区,此时查看交换分区的使用情况,你会发现used为0了。