/LinuxSwap

Linux中的swap技术研究

LinuxSwap

Linux中的swap技术研究

Swap简介:

         物理内存就是计算机的实际内存大小,由RAM芯片组成,虚拟内存是虚拟出来的,使用磁盘
      代替内存。虚拟内存的出现,让机器内存不够的情况得到部分解决,当程序运行起来由操作系统
      做具体的虚拟内存到物理内存的替换和加载,这里的虚拟内存就是所谓的swap.
    当物理内存使用完或者达到一定比例之后,我们可以使用swap做临时的内存使用。当物理内存
    和swap都被使用完那么就会出错,out of memory。对于使用多大比例内存之后开始使用swap,
    在系统的配置文件中可以通过调整参数进行修改。
	cat  /proc/sys/vm/swappiness
	60

    该参数可以从0-100进行设置。0就是最大限度使用内存,尽量不使用swap;100就是积极使用
    swap。这个具体的通过系统的算法进行确定。

    物理内存我们是无法更改的,所以swap的大小设置将会影响应用能否正常运行。那么swap大小如
    何确定。根据centos官网介绍可以得出如下公式:M = Amount of RAM in GB, and S = Amount of swap in GB, then If M < 2, S = M *2 Else S = M + 2。而且其最小不应
    该小于32M(never less than 32 MB.)。

    swap分区的数量对性能也有很大的影响。因为swap毕竟还是以磁盘来伪装成内存,交换的操作是
    磁盘IO的操作而不是内存的load与store操作。如果有多个swap交换区,每个swap会有一定的优
    先级,该优先级也可以调整。swap空间的分配会以轮流的方式操作于所有的swap,这样会大大均
    衡IO的负载,加快swap交换的速度。