Linux系统使用swap来扩展内存,当内存不足时,会将不常用的内存数据写入swap分区中。如果swap分区空间不足,就需要调整swap的大小。本文将介绍如何调整swap分区大小和Linux扩容swap分区的技巧。
调整swap分区大小
步骤1:查看当前swap分区情况
使用free -h
命令查看当前的swap分区情况,如下所示:
$ free -h
total used free shared buff/cache available
Mem: 1.9G 1.0G 133M 15M 796M 767M
Swap: 2.0G 128M 1.9G
可以看到当前系统的swap分区大小为2.0G。
步骤2:关闭swap分区
在修改swap分区时,需要先关闭swap分区。使用sudo swapoff -a
命令关闭所有的swap分区。
步骤3:删除swap分区
使用sudo fdisk /dev/sdX
命令进入分区工具,其中sdx
为需要扩容的磁盘。使用d
命令删除swap分区,在确认后使用w
命令保存更改并退出分区工具。
步骤4:新建swap分区
使用sudo mkswap /dev/sdXN
命令创建新的swap分区,其中sdx
为需要扩容磁盘,N
为新的swap分区号。
步骤5:启用swap分区
使用sudo swapon /dev/sdXN
命令启用新的swap分区,其中sdx
为需要扩容磁盘,N
为新的swap分区号。
步骤6:修改swap分区大小
修改/etc/fstab
文件,将原来的swap分区UUID改为新的swap分区UUID,即将之前的UUID替换为新的swap分区UUID。
步骤7:查看swap分区情况
使用free -h
命令查看当前的swap分区情况,确认是否扩容成功。
Linux扩容swap分区的技巧
在Linux系统中,可以通过以下两种方式实现扩容swap分区的需求:
方式1:使用swap文件
可以通过新建swap文件的方式,在不改变磁盘分区结构的情况下,扩容swap分区。
-
创建swap文件:
sudo dd if=/dev/zero of=/swapfile bs=1G count=4
,其中bs
指定块大小,count
指定块数量,即创建一个4G大小的swap文件。 -
格式化swap文件:
sudo mkswap /swapfile
-
启用swap文件:
sudo swapon /swapfile
-
修改
/etc/fstab
文件:将/swapfile
的设置加入/etc/fstab
文件。
方式2:使用LVM
使用LVM(逻辑卷管理器)功能,可以方便地在分区扩容时扩容swap分区。
-
创建逻辑卷:
sudo lvcreate -L 2G -n swap lv_root
,其中-L
指定逻辑卷大小,-n
指定逻辑卷名称,前提是安装了LVM。 -
格式化逻辑卷:
sudo mkswap /dev/mapper/vg_root-swap
-
启用逻辑卷:
sudo swapon /dev/mapper/vg_root-swap
-
修改
/etc/fstab
文件:将/dev/mapper/vg_root-swap
的设置加入/etc/fstab
文件。
示例
在Ubuntu 20.04 LTS系统中,使用lsblk
命令查看当前swap分区情况:
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 20G 0 disk
├─sda1 8:1 0 512M 0 part /boot/efi
└─sda2 8:2 0 19.5G 0 part /
sdb 8:16 0 1000G 0 disk
└─sdb1 8:17 0 1000G 0 part /data
sr0 11:0 1 1024M 0 rom
可以看到当前系统上没有swap分区。使用以下命令创建一个2G大小的swap逻辑卷:
$ sudo lvcreate -L 2G -n swap lv_root
使用以下命令查看创建结果:
$ sudo lvdisplay
--- Logical volume ---
LV Path /dev/vg_root/swap
LV Name swap
VG Name vg_root
LV UUID fAVeu9-3B31-l0YC-DbrO-8dCw-CtLY-7g2X8A
LV Write Access read/write
LV Creation host, time ubuntu, 2022-02-21 13:34:42 +0800
LV Status available
# open 0
LV Size 2.00 GiB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:1
可以看到,创建成功。接下来使用以下命令格式化逻辑卷:
$ sudo mkswap /dev/vg_root/swap
使用以下命令启用逻辑卷:
$ sudo swapon /dev/vg_root/swap
最后使用free -h
命令查看当前的swap分区情况:
$ free -h
total used free shared buff/cache available
Mem: 1.9G 1.2G 10M 45M 720M 684M
Swap: 2.0G 0B 2.0G
可以看到,swap分区已成功扩容,并且分区大小已经变成2.0G。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux怎么调整swap大小? linux扩容swap分区的技巧 - Python技术站