RedHat/Centos

关注公众号 jb51net

关闭
操作系统 > RedHat/Centos >

CentOS中配置swap交换区的方法

脚本之家

CentOS 作为linux世界里最稳定的服务器版本,rhas5一直有很大的应用面,之前一直关注的是freebsd,因为应用的需要,特别在配合mysql和oracle上red hat有着太多优势。

用centos来代替red hat as的使用,因为centos5是利用rhas5的源码,去掉redhat的商标、图标之后编译发行的,是最一个源码编译版本,我用的是centos 5.2

在安装centos 5.2的时候,忘设置swap交换分区,在内存小的情况下,增大swap的作用比较有效的。

配置swap之前,通过 free 和 df 查看 swap 和 磁盘空间情况,目的是通过配置swap后比较变化。


free -m</p> <p>[root@ithomer ~]# free -m
total used free shared buffers cached
Mem: 1008 955 53 0 17 168
-/+ buffers/cache: 769 239
Swap: 0 0 0</p> <p> </p> <p>df -h</p> <p>[root@ithomer ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 15G 4.2G 79% /
tmpfs 505M 0 505M 0% /dev/shm
/dev/xvdb 9.9G 5.1G 4.4G 54% /home/data

 

第一步 创建文件块


[root@ithomer ~]# cd /var (进入一个文件夹)</p> <p>[root@ithomer var]# dd if=/dev/zero of=swapfile bs=1024 count=1024000 (创建1GB的swap ,一般是内存的两倍)</p> <p>1024000+0 records in
1024000+0 records out
1048576000 bytes (1.0 GB) copied, 23.3843 s, 44.8 MB/s</p> <p>[root@ithomer var]# /sbin/mkswap swapfile (创建swap文件,实际上dd已创建,此处不必再创建)</p> <p>mkswap: swapfile: warning: don’t erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 1023996 KiB
no label, UUID=e878f535-ea6f-4516-8a34-f1458951aa36</p> <p>[root@ithomer var]# ll swapfile
-rw-r–r– 1 root root 1048576000 11月 27 00:55 swapfile</p> <p>[root@ithomer var]# /sbin/swapon swapfile (激活swap文件)</p> <p>[root@ithomer var]# /sbin/swapon -s (检查swap是否正确)</p> <p>Filename Type Size Used Priority
/var/swapfile file 1023992 0 -1</p> <p> </p> <p>[root@ithomer var]# vi /etc/fstab (加到fstab文件中让系统引导时自动启动)

在末尾增加以下内容:


/var/swapfile swap swap defaults 0 0</p> <p>[root@ithomer var]# reboot

重启之后,top命令查看,有swap分区的大小了


free -m</p> <p>[root@ithomer ~]# free -m
total used free shared buffers cached
Mem: 1008 528 480 0 25 128
-/+ buffers/cache: 375 633
Swap: 999 0 999</p> <p> </p> <p>df -h</p> <p>[root@ithomer ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 20G 16G 3.2G 84% /
tmpfs 505M 0 505M 0% /dev/shm
/dev/xvdb 9.9G 5.1G 4.4G 54% /home/data

 

根据上面 free 和 df 与配置 swap 之前比较,发现swap由0增加到了999(大约为1GB),而系统主盘(/dev/xvda1)由 4.2G 减小到了 3.2G 大约为1GB,即swap的空间来源于系统主盘(/dev/xvda1)


问题与解决

1、格式化及启动swap文件

接下来执行mkswap命令,将myswap文件格式化成s文件系统,系统才能使用,切换到/tmp目录,并执行以下命令:


# mkswap swapfree (将文件格式化为swap文件格式)</p> <p>setting up swapspace version 1 , size = 262144 KB</p> <p># swapon /tmp/swapfree (#启动swap分区)

要停止使用新创建的swap文件,只要执行 swapoff /tmp/swapfree命令即可,如果swap交换文件不再使用,可以删除此文件。

2、检查swap


#swapon -s

3、 开机时自动启动新添加的swap分区

如果每次开机后都要执行swapon命令启动swap分区或者文件,这太麻烦了.这时可以利用文字编辑器在/etc/fstab文件加一行,好让开机时自动启动swap分区及文件:


/dec/hdb5 swap swap defaults 0 0 (开机时启动此swap分区)</p> <p>/tmp/swapfree swap swap defaults 0 0 (开机时启动此swap文件) .

swap空间大小:

通常情况下,Swap空间应大于或等于物理内存的大小,最小不应小于64M,通常Swap空间的大小应是物理内存的2-2.5倍。但根据不同的应用,应有不同的配置:如果是小的桌面系统,则只需要较小的Swap空间,而大的服务器系统则视情况不同需要不同大小的Swap空间。特别是数据库服务器和Web服务器,随着访问量的增加,对Swap空间的要求也会增加,具体配置参见各服务器产品的说明。

swap数量:

Swap分区的数量对性能也有很大的影响。因为Swap交换的操作是磁盘IO的操作,如果有多个Swap交换区,Swap空间的分配会以轮流的方式操作于所有的Swap,这样会大大均衡IO的负载,加快Swap交换的速度。如果只有一个交换区,所有的交换操作会使交换区变得很忙,使系统大多数时间处于等待状态,效率很低。用性能监视工具就会发现,此时的CPU并不很忙,而系统却慢。这说明,瓶颈在IO上,依靠提高CPU的速度是解决不了问题的。