Linux交换空间的使用

Linux交换空间的使用

虽然现在的内存已经变得非常廉价,但是swap仍然有很大的使用价值,合理的规划和使用swap分区,对系统稳定运行至关重要。Linux下可以使用文件 系统中的一个常规文件或者一个独立分区作为交换空间使用。同时linux允许使用多个交换分区或者交换文件

创建swap交换空间

创建交换空间所需的交换文件是一个普通的文件,但是,创建交换文件与创建普通文件不同,必须通过dd命令来完成,同时这个文件必须位于本地硬盘上,不能在网络文件系统(NFS)上创建swap交换文件
例如

[root@localhost ~]# dd if=/dev/zero of=/data/swapfile bs=1024 count=65536
65536+0 records in
65536+0 records out

这样就创建一个有连续空间的交换文件,大小为60M左右,
关于dd命令做简单的讲述:

  • if=输入文件,或者设备名称。
  • of=输出文件或者设备名称。
  • ibs=bytes 表示一次读入bytes 个字节(即一个块大小为 bytes 个字节)。
  • obs=bytes 表示一次写bytes 个字节(即一个块大小为 bytes 个字节)。
  • bs=bytes 同时设置读写块的大小,以bytes为单位,此参数可代替 ibs 和 obs。
  • count=blocks 仅拷贝blocks个块。
  • skip=blocks 表示从输入文件开头跳过 blocks 个块后再开始复制。
  • seek=blocks 表示从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)

这里的输入设备/dev/zero代表一个输出永远为0的设备文件,使用它作输入可以得到全为空的文件。

激活和使用swap

首先通过mkswap命令指定作为交换空间的设备或者文件:

[root@localhost ~]# mkswap  /data/swapfile
Setting up swapspace version 1, size = 67104 kB
[root@localhost backup]# free
             total       used       free     shared    buffers     cached
Mem:       2066632    1998188      68444          0      26160    1588044
-/+ buffers/cache:     383984    1682648
Swap:      4088500     101036    3987464

从上面输出可知,我们指定了一个67104 kB的交换空间,而此时新建的交换空间还未被使用,下面简单介绍下mkswap命令,mkswap的一般使用格式为:

mkswap [参数] [设备名称或文件][交换区大小]

参数:

  • -c:建立交换区前,先检查是否有损坏的区块。
  • -v0:建立旧式交换区,此为预设值。
  • -v1:建立新式交换区。

交换区大小:指定交换区的大小,单位为1024字节。
设置交换分区后,接着通过swapon命令激活swap:

[root@localhost ~]# /usr/sbin/swapon /data/swapfile
[root@localhost backup]# free
             total       used       free     shared    buffers     cached
Mem:       2066632    1997668      68964          0      27404    1588880
-/+ buffers/cache:     381384    1685248
Swap:      4154028     100976    4053052

通过free命令可以看出,swap大小已经由4088500k变为4154028k,相差的值是60M左右,刚好等于我们增加的一个交换文件大小,这说 明新增的交换分区已经可以使用了,但是如果linux重启,那么新增的swap空间将变得不可用,因此需要在/etc/fstab中添加自动加载设置:

 /data/swapfile  none  swap  sw 0 0

如此以来,linux在重启后就可以实现自动加载swap分区了。其实linux在启动过程中会执行“swapon -a”命令,此命令会加载列在/etc/fstab中的所有交换空间。

移除交换空间

通过swapoff即可移除一个交换空间

[root@localhost ~]# /usr/sbin/swapoff /data/swapfile

其实也可以通过swapoff -a移除在/etc/fstab中定义的所有交换空间,这里的swapoff -a与上面提到的swapon -a对应。执行swapoff -a后,free命令输出如下:

[root@localhost backup]# free
             total       used       free     shared    buffers     cached
Mem:       2066632    2048724      17908          0      30352    1642748
-/+ buffers/cache:     375624    1691008
Swap:            0          0          0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值