Swap分区在系统的物理内存不够用的时候,把硬盘空间中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
如果Swap空间用完,则服务进程无法启动,通常会出现“application is out of memory”的错误,严重时会造成服务进程的死锁。因此Swap空间的分配是很重要的。
通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,具体配置参见各服务器产品的说明。
另外,Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。
过程略...
[root@drz ~]# mkswap /dev/sdb1
Setting up swapspace version 1, size = 5237152 KiB
no label, UUID=a27052be-af29-4b7b-b2ea-dd98cea07187
[root@drz ~]# free -m
total used free shared buffers cached
Mem: 1990 291 1699 0 7 106
-/+ buffers/cache: 177 1813
Swap: 4097 0 4097
##启用swap空间
[root@drz ~]# swapon /dev/sdb1
##验证增加的swap空间
[root@drz ~]# free -m
total used free shared buffers cached
Mem: 1990 295 1695 0 7 106
-/+ buffers/cache: 181 1809
Swap: 9212 0 9212
[root@drz ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/sdb1 swap swap defaults 0 0
[root@drz ~]# dd if=/dev/zero of=/home/swapfile bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 23.5135 s, 45.7 MB/s
##if 表示 infile,of 表示 outfile,bs=1M 代表增加的模块大小,count=1024 代表 1024 个模块,也就是 1G 空间
[root@drz ~]# mkswap /home/swapfile
mkswap: /home/swapfile: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1048572 KiB
no label, UUID=6d05e7ef-20fe-4464-ac24-e22433343e26
##查看激活前swap大小
[root@drz ~]# free -m
total used free shared buffers cached
Mem: 1990 1354 636 0 8 1130
-/+ buffers/cache: 215 1775
Swap: 9212 0 9212
##激活文件
[root@drz ~]# swapon /home/swapfile
##验证增加情况
[root@drz ~]# free -m
total used free shared buffers cached
Mem: 1990 1355 635 0 8 1130
-/+ buffers/cache: 216 1774
Swap: 10236 0 10236
[root@drz ~]# vi /etc/fstab
[root@drz ~]# vi /etc/fstab
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/home/swapfile swap swap defaults 0 0