目录
一、添加虚拟内存
方式一:通过swap文件创建虚拟内存
## 选择路径
cd /var
dd if=/dev/zero of=swapfile bs=1M count=1024
- ## 为了安全建议将交换分区文件权限设为 0600 或 0644
chmod 0600 swapfile
## 将该文件设为 Swap 文件(格式化)
mkswap swapfile
## 激活swap文件(启用虚拟内存)
swapon swapfile
## 检测swap是否正确
swapon -s
## 添加开机自动挂载
vi /etc/fstab
#在文本内添加
/var/swapfile swap swap defaults 0 0
#或者直接echo写入
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
## 设置虚存用度(默认是30,一般不建议超过 60,值越高,使用虚存的优先级越高)
vim /etc/sysctl.d/swappiness.conf
vm.swappiness = 60
## 使配置生效
sysctl -p /etc/sysctl.d/swappiness.conf
方式二:通过分区创建
## 新增一块硬盘
[root@localhost ~]# fdisk -l
........
磁盘 /dev/sdc:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
## 给新增的磁盘分区
[root@localhost ~]# fdisk /dev/sdc
命令(输入 m 获取帮助):p #查看当前有哪些分区
磁盘 /dev/sdc:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16721e57
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n #创建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-8388607,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-8388607,默认为 8388607):
将使用默认值 8388607
分区 1 已设置为 Linux 类型,大小设为 4 GiB
命令(输入 m 获取帮助):t #选择分区,因为只有分区1,所以默认是分区1
已选择分区 1
Hex 代码(输入 L 列出所有代码):L #查看所有分区格式
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):82 #选择格式为swap
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
## 创建卷组,把刚分区的/dev/sdc1加入到swapfile卷
[root@localhost ~]# vgcreate swapfile /dev/sdc1 ## 卷名称为swapfile
Physical volume "/dev/sdc1" successfully created.
Volume group "swapfile" successfully created
[root@localhost ~]# vgdisplay #查看卷组
--- Volume group ---
VG Name swapfile
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <4.00 GiB
PE Size 4.00 MiB
Total PE 1023
Alloc PE / Size 0 / 0
Free PE / Size 1023 / <4.00 GiB
VG UUID wtrefp-Vkrj-TCZn-buFx-p2cS-H85D-n7dDnX
## 创建逻辑卷,逻辑卷名为flie1,-l +100%free把卷组中全部空闲的空间加入到逻辑卷,也可以指定大小 -L xxG
[root@localhost ~]# lvcreate -l +100%free -n file1 swapfile
Logical volume "file1" created.
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/swapfile/file1
LV Name file1
VG Name swapfile
LV UUID 8upLCd-N8Kw-E8PO-1crx-XHHx-8fbe-F7z068
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2025-04-01 16:44:02 +0800
LV Status available
# open 0
LV Size <4.00 GiB
Current LE 1023
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
## 格式化分区并启用
[root@localhost ~]# mkswap /dev/swapfile/file1
正在设置交换空间版本 1,大小 = 4190204 KiB
无标签,UUID=5eab3cc5-13b8-4983-9e45-6118a7ea2f33
[root@localhost ~]# swapon /dev/swapfile/file1
[root@localhost ~]# free -h ## 可以看到swap分区已经被使用了
total used free shared buff/cache available
Mem: 3.7G 1.8G 398M 29M 1.5G 1.6G
Swap: 4.0G 0B 4.0G
##设置开机自启
[root@localhost ~]# vim /etc/fstab
##新增
/dev/swapfile/file1 swap swap defaults 0 0
二、取消虚拟内存
1、以swap文件创建虚拟内存的删除方式
##首先需要将swap文件取消使用(操作前需谨慎,物理内存不足会导致内存溢出或者杀掉服务进程)
swapoff /var/swapfile
## 删除swap文件
rm -f /var/swapfile
## 将fstab文件里的自动挂载swap的配置删除
sed -i '/\/var\/swapfile swap swap defaults 0 0/s/^/#/' /etc/fstab
2、通过分区创建虚拟内存的删除方式
##首先需要将swap文件取消使用(操作前需谨慎,物理内存不足会导致内存溢出或者杀掉服务进程)
[root@localhost ~]# swapoff /dev/swapfile/file1
## 删除逻辑卷、卷组,物理卷
[root@localhost ~]# vgdisplay #查看卷组
--- Volume group ---
VG Name swapfile
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size <4.00 GiB
PE Size 4.00 MiB
Total PE 1023
Alloc PE / Size 1023 / <4.00 GiB
Free PE / Size 0 / 0
VG UUID PhPO2l-qjNF-8Z4e-MB1X-HKgQ-N6iQ-tpJ2M2
[root@localhost ~]# lvremove /dev/swapfile/file1 # 删除逻辑卷
Do you really want to remove active logical volume swapfile/file1? [y/n]: y
Logical volume "file1" successfully removed
[root@localhost ~]# sudo vgremove swapfile # 删除卷组
Volume group "swapfile" successfully removed
[root@localhost ~]# pvdisplay
"/dev/sdc1" is a new physical volume of "<4.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size <4.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID ZIpqID-CjND-9C4c-EntM-1h3Z-xEPO-m80cC8
[root@localhost ~]# sudo pvremove /dev/sdc1 # 删除物理卷
Labels on physical volume "/dev/sdc1" successfully wiped.
## 格式化磁盘分区
[root@localhost ~]# fdisk /dev/sdc
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16721e57
设备 Boot Start End Blocks Id System
/dev/sdc1 2048 8388607 4193280 82 Linux swap / Solaris
命令(输入 m 获取帮助):d #删除分区
已选择分区 1
分区 1 已删除
命令(输入 m 获取帮助):p
磁盘 /dev/sdc:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16721e57
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
## 将fstab文件里的自动挂载swap的配置删除
sed -i '/\/dev\/swapfile\/file1 swap swap defaults 0 0/s/^/#/' /etc/fstab
三、swap分区扩容
方式一:通过swap文件扩容
ps:如果采用传统分区创建的swap可以扩容,具体方法参考添加虚拟内存的方式一
ps:如果已经用swap文件创建了虚拟内存,则无法通过该方法扩容,可以删除掉原有的swap文件,重新创建一个更大的。
方式二:通过分区扩容
## 目前已经有了swap分区的逻辑卷
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID X5ErhM-ifM1-hQEG-C5m7-OrRQ-k4MP-lz56rw
LV Write Access read/write
LV Creation host, time localhost, 2023-02-22 10:24:20 +0800
LV Status available
# open 0
LV Size 2.12 GiB
Current LE 544
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
## 新增一块磁盘并分区
[root@localhost ~]# fdisk /dev/sdc
命令(输入 m 获取帮助):p #查看当前有哪些分区
磁盘 /dev/sdc:4294 MB, 4294967296 字节,8388608 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x16721e57
设备 Boot Start End Blocks Id System
命令(输入 m 获取帮助):n #创建分区
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-8388607,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-8388607,默认为 8388607):
将使用默认值 8388607
分区 1 已设置为 Linux 类型,大小设为 4 GiB
命令(输入 m 获取帮助):t #选择分区,因为只有分区1,所以默认是分区1
已选择分区 1
Hex 代码(输入 L 列出所有代码):L #查看所有分区格式
0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris
1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-
2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-
3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
4 FAT16 <32M 40 Venix 80286 85 Linux 扩展 c7 Syrinx
5 扩展 41 PPC PReP Boot 86 NTFS 卷集 da 非文件系统数据
6 FAT16 42 SFS 87 NTFS 卷集 db CP/M / CTOS / .
7 HPFS/NTFS/exFAT 4d QNX4.x 88 Linux 纯文本 de Dell 工具
8 AIX 4e QNX4.x 第2部分 8e Linux LVM df BootIt
9 AIX 可启动 4f QNX4.x 第3部分 93 Amoeba e1 DOS 访问
a OS/2 启动管理器 50 OnTrack DM 94 Amoeba BBT e3 DOS R/O
b W95 FAT32 51 OnTrack DM6 Aux 9f BSD/OS e4 SpeedStor
c W95 FAT32 (LBA) 52 CP/M a0 IBM Thinkpad 休 eb BeOS fs
e W95 FAT16 (LBA) 53 OnTrack DM6 Aux a5 FreeBSD ee GPT
f W95 扩展 (LBA) 54 OnTrackDM6 a6 OpenBSD ef EFI (FAT-12/16/
10 OPUS 55 EZ-Drive a7 NeXTSTEP f0 Linux/PA-RISC
11 隐藏的 FAT12 56 Golden Bow a8 Darwin UFS f1 SpeedStor
12 Compaq 诊断 5c Priam Edisk a9 NetBSD f4 SpeedStor
14 隐藏的 FAT16 <3 61 SpeedStor ab Darwin 启动 f2 DOS 次要
16 隐藏的 FAT16 63 GNU HURD or Sys af HFS / HFS+ fb VMware VMFS
17 隐藏的 HPFS/NTF 64 Novell Netware b7 BSDI fs fc VMware VMKCORE
18 AST 智能睡眠 65 Novell Netware b8 BSDI swap fd Linux raid 自动
1b 隐藏的 W95 FAT3 70 DiskSecure 多启 bb Boot Wizard 隐 fe LANstep
1c 隐藏的 W95 FAT3 75 PC/IX be Solaris 启动 ff BBT
1e 隐藏的 W95 FAT1 80 旧 Minix
Hex 代码(输入 L 列出所有代码):82 #选择格式为swap
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
## 创建物理卷
[root@localhost ~]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
## 扩展到centos卷组
[root@localhost ~]# vgextend centos /dev/sdc1
Volume group "centos" successfully extended
## 给卷扩容
[root@localhost ~]# lvresize -l +100%free /dev/mapper/centos-swap
Size of logical volume centos/swap changed from 2.12 GiB (544 extents) to 6.12 GiB (1567 extents).
Logical volume centos/swap successfully resized.
## 需要取消交换空间的时候并格式化后重新挂载
[root@localhost ~]# swapoff /dev/mapper/centos-swap
[root@localhost ~]# mkswap /dev/mapper/centos-swap
[root@localhost ~]# swapon /dev/mapper/centos-swap
843

被折叠的 条评论
为什么被折叠?



