交换分区的作用

(Swap)交换分区在系统的物理内存不够用的时候,会把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用. 但需要注意:虚拟内存并不是等到物理内存用尽了才使用的,这个由

cat /proc/sys/vm/swappiness 60 

这个参数来决定的,(0~100)数值越大使用SWAP越积极.

交换分区性能

既然是把硬盘作为内存来使用,IO性能上肯定没法跟物理内存相比,内存跟硬盘读写速度的差距即交换分区跟物理内存的差距.

合理分配交换分区

需要注意的三点

  • SWAP并不是一味的越大大越好,系统中的物理内存越大,对于内存的负荷可能也越大;因此单个SWAP划分不宜过大,这样当一个SWAP被占用时不会因为整个SWAP过大而影响整个系统内存的负荷.
  • SWAP单个分区大小受系统内核影响,32位系统的内核不支持单个超过2G,64位则不超过8G.
  • 要及时关注SWAP的使用量,使Swap负载保持在30%以下,这样才能保证系统的良好性能.

下面是一个推荐的分配值公式

当物理内存小于2G:  SWAP = RAM x 2
当物理内存小于3G:   SWAP = (RAM - 2) + (2 x 2)
当物理内存大于32G:  SWAP <= RAM

交换分区相关的几个命令

mkswap  {devices}  #创建交换分区
swapon -s          #查看当前交换分区使用量
swapon {devices}   #激活交换分区
swapoff {devices}  #关闭交换分区

具体创建交换分区的步骤(以本博客128M内存为例,创建256M的SWAP)

cd /var/                                                  #进入一个目录:
dd if=/dev/zero of=swapfile bs=1024 count=262144          #获取256M的文件块
mkswap swapfile                                           #创建swap文件:
swapon swapfile                                           # 激活swap文件
swapon -s                                                 #查看一下swap是否正确
echo "/var/swapfile swap swap defaults 0 0" >>/etc/fstab  #写入开机启动