交换分区的作用
(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 #写入开机启动