管理交换空间

目标

  创建和管理交换空间以补充屋里内存。

名词解释

  • 交换空间

  交换空间是受Linux内核内存管理子系统控制的磁盘区域。内核使用交换空间,通过保存不活动的内存页来补充系统RAM。系统RAM与交换空间组合在一起称为虚拟内存。

  当系统上的内存使用量超过定义的限制时,内核将搜索RAM,寻找已分配给进程但空闲的内存页。内核将空闲的内存页写入到交换区,并向其他进程重新分配RAM页面。如果某个程序需要访问磁盘上的页面,则内核会找到另一个空闲的内存页,将其写入到磁盘,然后从交换区重新调用所需的页面。

  由于交换区位于磁盘上,所以与RAM相比,交换会比较慢。虽然是用于增加系统RAM,但对于RAM不足以满足工作负载需求的问题,不应将交换空间视为可持续性的解决方案。

  • 调整交换空间大小

  管理员应根据系统的内存工作负载来调整交换空间大小。应用供应商有时会提供这方面的建议。根据物理内存总量,下表提供了一些知道。

RAM 交换空间 允许HIBERNATE时的交换空间
2GiB或以下 两倍的RAM 三倍的RAM
4GiB或以上 4GB即可 不需要过多的交换空间

实操演示

  • 创建swap分区并挂载使用
(parted) mkpart primary linux-swap 0% 2048MB
                                                        (parted) p        
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdd: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system     Name     标志
 1      1049kB  2048MB  2047MB  linux-swap(v1)  primary

                                                        (parted) quit     
信息: You may need to update /etc/fstab.

##格式化分区为交换分区格式
[root@localhost ~]# mkswap /dev/sdd1
mkswap: /dev/sdd1: warning: wiping old swap signature.
正在设置交换空间版本 1,大小 = 1998844 KiB
无标签,UUID=7a09364f-ee04-42c9-b70f-a04a892bc9e2

##查看当前交换分区
[root@localhost ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    7340028    0    -2
[root@localhost ~]# swapon /dev/sdd1
[root@localhost ~]# swapon -s
文件名                类型        大小    已用    权限
/dev/dm-1                                  partition    7340028    0    -2
/dev/sdd1                                  partition    1998844    0    -3
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1819         249        1234          25         335        1385
Swap:          9119           0        9119


##永久挂载交换分区
[root@localhost ~]# vim /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Thu Jun 10 09:42:49 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=44b91e5a-a1d3-4e03-a98f-663d890dc764 /boot                   xfs     defaults        0 0
/dev/mapper/centos-data /data                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/sdd/sdd1 swap                    swap    defaults        0 0

文档更新时间: 2022-11-01 16:53   作者:xiubao yan