1、基础
1.1、什么是swap
Swap分区在系统的物理内存不够时,将硬盘中的一部分空间供当前运行的程序使用。
1.2、为什么需要swap
1.2.1、原因
当物理内存不够时会随机 kill占用内存的进程,从而产生oom ,临时使用swap可以解决。
1.2.2、oom故障模拟
~]# dd if=/dev/zero of=/dev/null bs=3500M
#故障日志
~]# tail -f /var/Log/messages
out of memory: Kill process 2227 (dd) score 778 or sacrifice child
Killed process 2227 (dd) total-vm:906724kB, anon-rss:798820kB,file-rss:0kB
2、创建swap分区
2.1、创建硬盘分区
2.1.1、fdisk创建
2.1.2、修改文件系统类型
查询文件系统类型
Command (m for help): l
18 HP-UX service E2A1E728-32E3-11D6-A682-7B03A0000000
19 Linux swap 0657FD6D-A4AB-43C4-84E5-0933C84B4F4F
20 Linux filesystem 0FC63DAF-8483-4772-8E79-3D69D8477DE4
Command (m for help): t
Selected partition 1
Partition type (type L to list all types): 19
Changed type of partition 'Linux filesystem' to 'Linux swap'
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: gpt
Disk identifier: 703C018B-A48B-42F9-93E7-5FE11908195A
# Start End Size Type Name
1 2048 16779263 8G Linux swap
Command (m for help): w
The partition table has been altered!
2.1.3、格式化swap
2.2、挂载swap分区
2.2.1、挂载所有swap
# 主要加载/etc/fstab
]# swapon -a
2.2.2、挂载指定设备swap
]# swapon /dev/sdb1
]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 9 0 9
2.3、卸载swap分区
2.3.1、卸载指定设备swap
]# swapoff /dev/sdb1
]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 1 0 1
3、配置swap开机自动挂载
3.1、自动追加配置
blkid | grep /dev/sdb1 | awk -F '[: ]+' '{print $2}' | sed -r 's#(.*)#\1 swap swap defaults 0 0 #g'>>/etc/fstab
3.2、查看配置文件
]# tail -1 /etc/fstab
UUID="d9258bbf-24b8-4e79-83b3-4f5efd4f1741" swap swap defaults 0 0
3.3、测试是否挂载正常
]# swapon -a
]# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 9 0 9