一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

linux中swap交换分区分区设置教程

时间:2014-04-20 编辑:简简单单 来源:一聚教程网

什么是swap分区

交换区可是看作是内存的一部分,只是它是从硬盘中划分出来的,它像windows下的虚拟内存,它的作用是缓存数据,划分它时,大小设成你的物理内存的大小的两倍。

设置swap交换分区

交换分区的大小分配推荐法则

内存小于4GB时,推荐不少于2GB的swap空间;

内存4GB~16GB,推荐不少于4GB的swap空间;

内存16GB~64GB,推荐不少于8GB的swap空间;

内存64GB~256GB,推荐不少于16GB的swap空间。

1、以root权限登录SSH,键入如下命令创建512M的swap文件(1024 * 512MB = 524288).
dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
2、创建Linux交换文件
mkswap /swapfile1
3、立即激活 /swapfile1交换文件
swapon /swapfile1
4、设置系统自激活交换文件。编辑 /etc/fstab文件,并增加如下第二行代码。
vi /etc/fstab
/swapfile1 swap swap defaults 0 0
5、重启系统,使用free -m查看swap大小。

Linux中查看swap的命令

可以用“cat /proc/swaps”、“swapon -s”、“free”等命令查看Swap分区的情况。

[root@jay-linux ~]# swapon  -s
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2096120 840     -1
[root@jay-linux ~]# cat /proc/swaps
Filename                                Type            Size    Used    Priority
/dev/sda3                               partition       2096120 840     -1
[root@jay-linux ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          7872       7280        592          0        429       5964
-/+ buffers/cache:        886       6986
Swap:         2046          0       2046
根据上面的例子,我其实该分配4GB的Swap空间,这里演示的是2GB(可能不太符合Redhat的推荐值,因为本机使用内存量并不会太大,几乎没有使用Swap的情况)。

重新划分Swap交换分区 

先执行一下fdisk -l查看一下设备名称和分区状况

1、执行swapoff swap分区的设备名 关闭交换文件。
2、看到swap的设备名删除原来的swap分区,在新建一个swap分区。可以使用fdisk做此操作
如果对/dev/sda设备进行分区操作:
fdisk /dev/sda
屏幕提示:
Command (m for help):
键入p
屏幕会列出当前所有的分区设备号、大小、文件格式等参数;
下面进行删www.111com.net除分区的操作:
屏幕提示:
Command (m for help):
键入d
屏幕提示:
Partition number (1-x):
x是您现有的分区数量,有两个分区的话x就是2;删除分区时从最后一个分区开始,键入2:
屏幕提示:
Command (m for help):
键入p
列出当前分区情况,发现sda2被删除了;
继续键入d,然后是1,再键入p,发现sda的分区都被删除了;
屏幕提示:
Command (m for help):
键入w
保存当前删除的操作,回到主界面,如果/dev/sdb上也有分区,按照上面的方法删除。
下面进行创建分区的操作:
fdisk /dev/sda
屏幕提示:
Command (m for help):
键入p
此时硬盘上应该没有任何分区;
键入n
屏幕提示:
First cylinder (abcd-efgh, default abcd):
abcd和efgh都是数字,表示新分区起始的柱面数,直接键入回车即可;
屏幕提示:
Last cylinder or +size or +sizeM or +sizeK (abcd-ijkl, default ijkl):
abcd和 ijkl也都是数字,这里是要求定义分区的大小,如果要建立2G的空间,键入+2000M,如果要将后面所有空间都分出来,直接键入回车即可;注意分区大
小的单位M和K一定要大写!
屏幕提示:
Command (m for help):
键入p
发现已经建立了分区sda1,大小是2G
仿照上面的方法建立更多分区,可以用p查看,最后键入w保存操作。
3、这样重建swap之后,可以使用mkswap /dev/sda[x],其中的[x]代表的是你的第几个分区。
4、激活交换分区 swapon /dev/sda[x]
5、 想要在系统启动时自动激活此交换文件,应该在 /etc/fstab 中加入如下一行:
/dev/sda[x] swap swap defaults 0 0
添加交换文件并启用它后,用 cat /proc/swaps 或 free 命令查看交换文件是否
被成功启用。

没有swap交换分区分区的解决办法(用文件替代swap分区)

文件系统      类型    容量  已用 可用 已用% 挂载点
/dev/sdb2     ext3    7.6G  555M  6.7G   8% /
/dev/sda1     ext3    466G  453G   13G  98% /home1
/dev/sdb7     ext3    4.8G  149M  4.4G   4% /tmp
/dev/sdb6     ext3    4.8G  1.6G  3.0G  35% /var
/dev/sdb5     ext3    5.7G  140M  5.3G   3% /swap
/dev/sdb3     ext3    5.7G  2.1G  3.4G  39% /usr
/dev/sdb1     ext3     99M   18M   77M  19% /boot
/dev/sdb8     ext3    437G  175G  262G  41% /home2
tmpfs        tmpfs    2.0G  2.2M  2.0G   1% /dev/shm

swap交换分区就根本用不了,由于此服务器已经在跑业务了,不能随便停机,更不能重装系统。

[root@localhost ~]# free -m
             total       used       free     shared    buffers     cached
Mem:          3910       3886         23          0         16       1652
-/ buffers/cache:       2217       1692
Swap:            0          0          0

解决方法:

#制作一个swapfile文件,需要root权限
su
dd if=/dev/zero of=/swap/swapfile bs=4096 count=1310720
#说明:其中bs参数制定每次读取及输入多少个字节。因为硬盘存取的最小单位为扇区,所以设置bs参数就相当于设置每个扇区的大小。我这里设置为4096即4k。参数count则主要是用来设置可以使用扇区的数量。所以这个文件所占用的空间就是以上连个参数的乘积。www.111com.net这里需要注意的是,如果要增加swap文件容量,一般是通过调整count参数来实现的,bs参数一般不动。看到我的/swap分区完全没被使用,有5.3G剩余空间,所有我建立了一个5G的swapfile文件。

#格式化swapfile,同样需要root权限
mkswap /swap/swapfile

#启用swap
swapon /swap/swapfile

#不想每次重启后手动启用swap就可以将挂载写入/etc/fstab中 (因为我这个分区比较特殊,分区名称相同,为保险起见,我没写入到fstab里面)
/swap/swapfile swap swap defaults 0 0

#用free -m查看一下,swap设定已经生效了:
[root@localhost ~]# free -m             
             total       used       free     shared    buffers     cached
Mem:          3910       3885         25          0         21       1639
-/ buffers/cache:       2224       1686
Swap:         5119          0       5119

顺利搞定。

当你实在不需要使用swap交换分区时 可是释放掉swapfile
swapoff /swap/swapfile
rm -f /swap/swapfile

热门栏目