Swap 基本概念
Swap 基本概念Swap交换空间是 Linux 的虚拟内存机制把磁盘一块空间当作 “临时内存”缓解物理内存不足。交换分区swap partition独立分区性能好、稳定。交换文件swap file普通文件灵活、易调整适合云服务器。查看内存# 默认单位是KiB使用-m选项以MiB为单位[rootsever ~13:14:32]# freetotal usedfreeshared buff/cache available Mem:40261161590323608940117842581443639900Swap:209714802097148输出说明Memtotal物理内存空间大小。used使用的内存 (total - free - buffers - cache)。free未使用的内存空间大小(真正的空闲未被任何程序占用)。shared多个进程共享的内存空间大小。cached从磁盘读取的数据占用的内存空间大小待以后使用数据没有被修改。buffers被更改但未写回磁盘的数据占用的内存空间大小。Swap:total交换空间大小。used使用的交换空间大小。free未使用交换空间大小。补充分析操作系统自带的 LVM 结构[rootsever ~13:14:37]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda8:0060G0disk ├─sda18:101G0part /boot └─sda28:2059G0part ├─centos-root253:0038.3G0lvm / ├─centos-swap253:102G0lvm[SWAP]└─centos-home253:2018.7G0lvm /home sdb8:16020G0disk sdc8:32020G0disk sdd8:48020G0disk sde8:64020G0disk sdf8:80020G0disk sr011:014.4G0rom发现/home文件系统系统空间很大但是使用空间非常少。缩减/home空间给其他应用使用。/home文件系统是xfs不支持缩减。可以备份数据后再缩减空间。# 备份数据[rootsever ~19:39:24]# mkdir /backup[rootsever ~19:41:53]# cp -a /home/bgy /backup/[rootsever ~19:42:04]# ls /backupbgy# 缩减逻辑卷[rootsever ~19:42:53]# umount /home[rootsever ~19:43:08]# lvreduce -L 5G /dev/centos/homeWARNING: Reducing active logical volume to5.00GiB. THIS MAY DESTROY YOUR DATA(filesystem etc.)Do you really want to reduce centos/home?[y/n]: y Size of logical volume centos/home changed from18.70GiB(4786extents)to5.00GiB(1280extents). Logical volume centos/home successfully resized.# 空间释放到卷组中[rootsever ~19:43:27]# vgsVG#PV #LV #SN Attr VSize VFreecentos130wz--n-59.00g13.70g# 重新格式化并挂载[rootsever ~19:43:31]# mkfs.xfs -f /dev/centos/homemeta-data/dev/centos/homeisize512agcount4,agsize327680blkssectsz512attr2,projid32bit1crc1finobt0,sparse0databsize4096blocks1310720,imaxpct25sunit0swidth0blks namingversion2bsize4096ascii-ci0ftype1loginternal logbsize4096blocks2560,version2sectsz512sunit0blks, lazy-count1realtimenoneextsz4096blocks0,rtextents0[rootsever ~19:44:42]# grep home /etc/fstab/dev/mapper/centos-home /home xfs defaults00# 恢复数据[rootsever ~19:44:57]# cp -a /backup/bgy /home/[rootsever ~19:45:11]# su - bgy#home 已经缩减为5G[rootsever ~19:47:30]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda8:0060G0disk ├─sda18:101G0part /boot └─sda28:2059G0part ├─centos-root253:0038.3G0lvm / ├─centos-swap253:102G0lvm[SWAP]└─centos-home253:205G0lvm /home创建交换空间# 使用parted创建所需大小的分区并将其文件系统类型设置为linux-swap[rootsever ~19:49:18]# parted /dev/sdb mklabel gpt信息: You may need to update /etc/fstab.[rootsever ~19:49:21]# parted /dev/sdb unit MiB mkpart swap01 linux-swap 1 2049信息: You may need to update /etc/fstab.[rootsever ~19:49:47]# parted /dev/sdb unit MiB printModel: VMware, VMware Virtual S(scsi)Disk /dev/sdb: 20480MiB Sector size(logical/physical): 512B/512B Partition Table: gpt Disk Flags: Number Start End Size File system Name 标志11.00MiB 2049MiB 2048MiB swap01# 格式化swap空间[rootsever ~19:50:02]# mkswap /dev/sdb1正在设置交换空间版本1大小2097148KiB 无标签UUID885da87e-f0e5-4a77-a307-7c32b64633af激活 swap 空间# 激活swap空间[rootsever ~19:50:28]# swapon /dev/sdb1# 查看swap设备列表[rootsever ~19:51:10]# swapon -s文件名 类型 大小 已用 权限 /dev/dm-1 partition20971480-2/dev/sdb1 partition20971480-3默认情况下多个交换空间具有相同的优先级时系统会按顺序使用交换空间即内核先使用第一个已激活交换空间直至其空间已满然后开始使用第二个交换空间。在激活交换分区的时候可以为每个交换空间定义一个优先级从而强制按该顺序使用交换空间。swapon 命令使用-p选项指定优先级优先级介于-1和32767之间值越大优先级越高。取消 swap 空间激活[rootsever ~19:51:18]# swapoff /dev/sdb1[rootsever ~19:52:52]# swapon -s文件名 类型 大小 已用 权限 /dev/dm-1 partition20971480-2持久化激活 swap 空间修改/etc/fstab文件添加如下类似记录UUID885da87e-f0e5-4a77-a307-7c32b64633af swap swap defaults00[rootsever ~19:53:48]# blkid /dev/sdb1/dev/sdb1:UUID885da87e-f0e5-4a77-a307-7c32b64633afTYPEswapPARTLABELswap01PARTUUID1a5f995b-2593-44be-aab8-1d9c384bfae0[rootsever ~19:59:31]# swapon -a[rootsever ~19:59:35]# swapon -s文件名 类型 大小 已用 权限 /dev/dm-1 partition20971480-2/dev/sdb1 partition20971480-3