Linux下扩展swap分区的方法

 

一 问题描述:
在Linux系统下运行tomcat时发现swap分区过小导致应用经常自动自杀的情况,需要手动去扩展swap分区的大小。
[root@thweb2 root]# free
             total       used       free     shared    buffers     cached
Mem:       4119096    3205716     913380          0     180364     145836
-/+ buffers/cache:    2879516    1239580
Swap:      8185076       2300    8182776
 
 
二 解决方法:
2.1 创建分区
以下的操作都要在root用户下进行,首先先建立一个分区,采用dd命令比如
dd if=/dev/zero of=/tmp/swapfile bs=1024 count=8192000
这样就会创建/tmp/swapfile这么一个分区文件。文件的大小是8192000个block,一般情况下1个block为1K,所以这里空间是7.8G。
2.2 指定分区类型为swap
把分区变成swap分区,使用mkswap命令如下
/sbin/mkswap /tmp/swapfile
再接着使用这个swap分区,使其成为有效状态。
/sbin/swapon /tmp/swapfile
现在再用free -m命令查看一下内存和swap分区大小,就发现增加了7.8G的空间了。
2.3 设置扩展的swap分区为自动挂载
不过当计算机重启了以后,发现swap还是原来那么大,新的swap没有自动启动,还要手动启动。
那我们需要修改/etc/fstab文件,增加如下一行如下自动挂载命令行
/tmp/swapfile swap swap defaults 0 0
就可以在机器启动以后swap空间也增大了
 
最后效果:
[root@thweb2 root]# free
             total       used       free     shared    buffers     cached
Mem:       4119096    4101436      17660          0     188632    1227756
-/+ buffers/cache:    2685048    1434048
Swap:     16377068     127580   16249488