CentOS技巧:减小Linux swap分区的方法

时间:2022-04-03 04:54:04

用虚拟机玩Linux时经常发生Linux硬盘空间不足的情况,而宿主机硬盘空间又吃紧,怎么办?

很多童鞋给Linux分配的硬盘是8G,而安装Linux时采用默认分区方式的话swap分区有2G。swap分区即交换分区,类似于Windows的虚拟内存pagefile.sys。当内存不足时,把一部分硬盘空间虚拟成内存使用。而内存够用时则排不上用场。

对于实体机Linux,这2G的swap空间一般算不了什么,但对硬盘只有8G的虚拟机Linux来说,2G就很宝贵了。所以——减小Linux swap分区收回空间。

减小swap分区的方法:

1、先“df -h”和“fdisk - l”命令查看一下当前分区情况,如图。

根分区为5.5G。图中/dev/mapper/vg_"hostname"-lv_swap就是swap分区,为2G。swap分区亦可用free命令查看到。

CentOS技巧:减小Linux swap分区的方法

CentOS技巧:减小Linux swap分区的方法

2

用swapoff命令关闭交换分区:

# swapoff /dev/mapper/vg_"hostname"-lv_swap

然后用free命令检查下swap是否变为0了。

CentOS技巧:减小Linux swap分区的方法

3

用lvreduce命令把swap分区减小1500M:

# lvreduce -L -1500M /dev/mapper/vg_"hostname"-lv_swap

输入y,确定,看到提示swap减小至516M。

CentOS技巧:减小Linux swap分区的方法

4

重新把/dev/mapper/vg_"hostname"-lv_swap设置为swap分区:

# mkswap /dev/mapper/vg_"hostname"-lv_swap

CentOS技巧:减小Linux swap分区的方法

5

swapon开启swap分区:

# swapon /dev/mapper/vg_"hostname"-lv_swap

然后用free命令检查下swap是否变为516M了。

CentOS技巧:减小Linux swap分区的方法

扩展根分区把回收的空间利用起来

此时回收的1500M是闲置的*空间,还得将它分配给根分区。还好现在的Linux分区一般是采用LVM分区方式,可以很方便地进行分区的动态扩展,不破坏现有数据。

笔者这里是使用图形LVM(Logical Volume Manager)工具进行分区的动态扩展(如果没有安装此工具则需要装一下system-config-lvm的rpm包)。高手亦可在命令行下完成。

# system-config-lvm

展开“逻辑视图”->“lv_root”,点击“编辑属性”。

CentOS技巧:减小Linux swap分区的方法

点击“使用剩余”,可以看到5.54G增大至7.0G了。然后“确定”。

CentOS技巧:减小Linux swap分区的方法

回到LVM界面,查看到*空间变为0 了。

CentOS技巧:减小Linux swap分区的方法

回到命令行模式用“df -h”命令检查一下,可以看到根分区增大至6.9G了。

动态扩展无需重启,立即生效,大功告成!

CentOS技巧:减小Linux swap分区的方法

注意事项

swap空间不宜设置的太小,有些软件安装时对swap空间有要求。