RedHat/Centos

关注公众号 jb51net

关闭
操作系统 > RedHat/Centos >

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

脚本之家

  用虚拟机玩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命令查看到。

  2、用swapoff命令关闭交换分区:

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

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

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

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

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

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

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

  5、swapon开启swap分区:

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

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

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

  1、此时回收的1500M是闲置的自由空间,还得将它分配给根分区。还好现在的Linux分区一般是采用LVM分区方式,可以很方便地进行分区的动态扩展,不破坏现有数据。笔者这里是使用图形LVM(Logical Volume Manager)工具进行分区的动态扩展(如果没有安装此工具则需要装一下system-config-lvm的rpm包)。高手亦可在命令行下完成。

  # system-config-lvm

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

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

  

  3、回到LVM界面,查看到自由空间变为0 了。

  4、回到命令行模式用“df -h”命令检查一下,可以看到根分区增大至6.9G了。动态扩展无需重启,立即生效,大功告成!