物理内存分配与回收

物理内存分配与回收

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 了。

上一页
下一页