发布时间:2014-09-05 17:05:13作者:知识屋
SWAP我称之为交换区,相当于Windows系统下的虚拟内存。他的作用就是当我们系统中的内存不够用的时候,可以通过SWAP来增加内存。我们在安装Linux系统的时候,最基本的分区一个是根,一个是SWAP。如果我们当初把SWAP分小了的话,你需要增加他的大小,那么今天的内容就是这个内容:SWAP的创建/扩展。有两种方法供我们选择。
1、利用磁盘的剩余空间
这个前提就是你的磁盘还有剩余空间没有划分,或者是已经划分的分区不在使用。这个时候才能使用此方法。下面是此方法的实现步骤。
第一步:分区
查看磁盘的情况
[root@yufei ~]# fdisk -l /dev/sdb
此处省略N多行
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
/dev/sdb2 133 183 409657+ b W95 FAT32
/dev/sdb3 184 2610 19494877+ 5 Extended
/dev/sdb5 184 445 2104483+ 83 Linux
/dev/sdb6 446 511 530113+ 82 Linux swap / Solaris
sdb6是我们前面讲分区与格式化的时候分出来的,先不理会他。为了完整的来演示,所以我们增加新的分区
[root@yufei ~]# fdisk /dev/sdb
此处有省略内容
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
l
First cylinder (512-2610, default 512):
Using default value 512
Last cylinder, +cylinders or +size{K,M,G} (512-2610, default 2610): +256M
Command (m for help): p
此处有省略
/dev/sdb7 512 545 273073+ 83 Linux
第二步:转换分区类型
Command (m for help): t
Partition number (1-7): 7
Hex code (type L to list codes): L
此处有省略
Hex code (type L to list codes): 82
Changed system type of partition 7 to 82 (Linux swap / Solaris)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
用[root@yufei ~]# partprobe /dev/sdb也是同样的错误。
上面的错误提示大概内容就是设备繁忙,无法识别新的分区表,什么原因呢?看下面的解决方法。
还记得我们上一篇关于自动挂载的内容吗?对了,我们的sdb上的分区已经挂载到系统中了。通过下面的命令来查看
[root@yufei ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15118728 6980344 7370384 49% /
tmpfs 255784 0 255784 0% /dev/shm
/dev/sdb1 1033560 40980 939568 5% /mnt
/dev/sdb2 409424 0 409424 0% /test
把他们两个卸载掉
[root@yufei ~]# umount /dev/sdb1
[root@yufei ~]# umount /dev/sdb2
再来
[root@yufei ~]# partprobe /dev/sdb
这时候就没有显示错误信息了
[root@yufei ~]# fdisk -l /dev/sdb
此处有省略
Device Boot Start End Blocks Id System
/dev/sdb1 1 132 1060258+ 83 Linux
/dev/sdb2 133 183 409657+ b W95 FAT32
/dev/sdb3 184 2610 19494877+ 5 Extended
/dev/sdb5 184 445 2104483+ 83 Linux
/dev/sdb6 446 511 530113+ 82 Linux swap / Solaris
/dev/sdb7 512 545 273073+ 82 Linux swap / Solaris
sdb7已经分出来了。下面进行格式化
第三步:格式化SWAP分区
SWAP的格式化与我们前面的格式化稍有不同,只是命令不同而已,SWAP用mkswap
[root@yufei ~]# mkswap /dev/sdb7
Setting up swapspace version 1, size = 273068 KiB
no label, UUID=edca6b3a-047b-4e26-9b28-21493f92e2b4
因为没有设置卷标,所以是无卷标的。
第四步:激活SWAP
在激活我们创建的SWAP前,我们先来看看系统中的SWAP大小
[root@yufei ~]# free
total used free shared buffers cached
Mem: 511572 154664 356908 0 17408 76236
-/+ buffers/cache: 61020 450552
Swap: 524280 0 524280
这里面显示的是512M
[root@yufei ~]# swapon /dev/sdb7
激活SWAP,再显示SWAP的大小,多了256M
[root@yufei ~]# free
total used free shared buffers cached
Mem: 511572 154928 356644 0 17444 76252
-/+ buffers/cache: 61232 450340
Swap: 797344 0 797344
第五步:写入fstab
在/etc/fstab 最后加入如下内容
UUID=edca6b3a-047b-4e26-9b28-21493f92e2b4 swap swap defaults 0 0
重新启动系统看看SWAP的大小情况
[root@yufei ~]# free -m
total used free shared buffers cached
Mem: 511572 152636 358936 0 15132 75900
-/+ buffers/cache: 61604 449968
Swap: 797344 0 797344
2、利用分区的剩余空间
既然用分区的剩余空间,当然要找个空间大的分区来进行下面的操作啊!
第一步:创建SWAP文件
[root@yufei ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 15118728 6980460 7370268 49% /
tmpfs 255784 0 255784 0% /dev/shm
/dev/sdb1 1033560 40980 939568 5% /mnt
/dev/sdb2 409424 0 409424 0% /test
因为下面两个是sdb磁盘的,我们就不用了,直接用/分区吧。
创建一个256M的文件,名字为根目录下的swapfile
[root@yufei ~]# dd if=/dev/zero of=/swapfile bs=1M count=256
256+0 records in
256+0 records out
268435456 bytes (268 MB) copied, 9.43718 s, 28.4 MB/s
第二步:对SWAP文件进行格式化
[root@yufei ~]# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
on whole disk. Use -f to force.
Setting up swapspace version 1, size = 262140 KiB
no label, UUID=11ca575a-e810-4970-889a-a3f6d9af7dfe
第三步:激活SWAP
[root@yufei ~]# free
total used free shared buffers cached
Mem: 511572 419940 91632 0 15492 338472
-/+ buffers/cache: 65976 445596
Swap: 797344 0 797344
[root@yufei ~]# swapon /swapfile
[root@yufei ~]# free
total used free shared buffers cached
Mem: 511572 419948 91624 0 15492 338472
-/+ buffers/cache: 65984 445588
Swap: 1059480 0 1059480
第四步:写入fstab
加入下面的内容
/swapfile swap swap defaults 0 0
重新启动查询SWAP大小情况
[root@yufei ~]# free
total used free shared buffers cached
Mem: 511572 151156 360416 0 15228 74056
-/+ buffers/cache: 61872 449700
Swap: 1059480 0 1059480
这样我们把两种方法全部演示了一下,这里面有个问题,那就是现在系统中有三个SWAP,默认的情况下,哪个SWP最先使用呢?Linux的内核会自 动给SWAP指定一个优先级,这个优先级从-1开始,每加入一个新的没有用户指定优先级的SWAP,会给这个优先级减一。所以-1他的优先级最好,所以就 最先使用。
有这样一种情况,那就是在使用VPS的时候,系统在安装的时候,可能没有给分配SWAP,所以说,你要自己创建SWAP,但就分区与文件的SWAP而言,分区的SWAP效率要比文件高。所以有时候我们需要来调整他们的优先级。请继续看操作。
查看swap的优先级
[root@yufei ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 524280 0 -1
/dev/sdb7 partition 273064 0 -2
/swapfile file 262136 0 -3
这里是数字越大,优先级越高。
要更改他们的优先级也很简单,只需要在fstab中增加pri参数就OK。注意,这个pri后面的数值不是能负数哦!/etc/fstab修改的主要内容如下。
UUID=c70cd6a4-09cd-4aea-ba94-f3641df4e981 swap swap defaults,pri=1 0 0
UUID=edca6b3a-047b-4e26-9b28-21493f92e2b4 swap swap defaults,pri=2 0 0
/swapfile swap swap defaults,pri=3 0 0
为了使修改生效,我们需要先关闭SWAP再开启SWAP
[root@yufei ~]# swapoff -a
[root@yufei ~]# swapon -a
[root@yufei ~]# swapon -s
Filename Type Size Used Priority
/dev/sda2 partition 524280 0 1
/dev/sdb7 partition 273064 0 2
/swapfile file 262136 0 3
当然我把这个SWAP文件调整成最高优先级不合理,这里只是做个演示,来说明问题而已。所以大家不要把文件的SWAP调整成最高啊。如果不是必要的情况下,用系统默认的就好。
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能