swap扩容

image-20230528190142078

一. 方法1

概览:

扩容swap SWAP不够的情况临时扩容

1、建立一个新的swap文件。
dd if=/dev/zero of=/opt/swap_tmp.swap bs=1M count=10240
2、格式化为swap文件
mkswap /opt/swap_tmp.swap
3、修改权限
chmod 0600 /opt/swap_tmp.swap
4、挂载扩容
swapon /opt/swap_tmp.swap
5、查看是否扩容成功
free -m

推荐使用此种方式:

1.建立一个新的swap文件

1
2
3
4
# 新建dd文件 10240 为10G 此处我们dd一个1G的文件
count=10240 (10G)
count=1024 (1G)
dd if=/dev/zero of=/opt/swap_tmp.swap bs=1M count=1024

2. 格式化为swap文件 修改文件权限 挂载 卸载 扩容

1
2
3
4
5
6
7
8
9
10
# 格式化为swap文件
mkswap /opt/swap_tmp.swap
# 修改权限
chmod 0600 /opt/swap_tmp.swap
# 挂载扩容 (此时可以看到之前的swap由2G到3G)
swapon /opt/swap_tmp.swap
# 卸载扩容
swapoff /opt/swap_tmp.swap
# 查看是否扩容成功
free -m

image-20230528190903178

image-20230528191409977

3. 永久挂载swap

1
2
3
4
5
6
# 永久挂载
vim /etc/fstab
/opt/swap_tmp.swap swap swap defaults 0 0
# 此项不是必须的。如果不修改开机启动配置,重启之后的swap空间会重置,之前配置丢失。
# 验证 (永久挂载成功)
reboot

image-20230528192213214

二. 方法2 ( 推荐使用方法1

涉及命令:

free:查看内存状态命令,可以显示memory、swap、buffer/cache等的大小及使用状况;
dd:读取,转换并输出数据命令;
mkswap:设置交换区
swapon:启用交换区,相当于mount
swapoff:关闭交换区,相当于umount

1. 通过新建分区来扩展原有swap空间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# 这个是Linode的默认做法,这里也介绍一下。此方法与swap文件类似,只是使用了一个独立分区,而不是文件。
# 使用fdisk创建交换分区(假设是 /dev/sdb2)
# 使用mkswap设置交换分区:
mkswap /dev/sdb2
# 启用交换分区
swapon /dev/sdb2
# 修改/etc/fstab添加到开启启动项:
/dev/sdb2 swap swap defaults 0 0
# 如果要/dev/sdb1分区每次优先使用,可编辑/etc/fstab文件,将此分区的优先级改为1,修改完成后需重启机器才会生效
[root@centos7 ~]# vi /etc/fstab
[root@centos7 ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Tue Aug 13 23:27:51 2019
#
# 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=18170546-e5ce-4fd1-9f7a-45df40e45621 /boot xfs defaults 0 0
/dev/mapper/centos-swap swap swap defaults 0 0
/dev/sdb1 swap swap defaults,pri=1 0 0
[root@centos7 ~]# reboot
[root@centos7 ~]# swapon -s
Filename Type Size Used Priority
/dev/sdb1 partition 8388604 0 1
/dev/dm-1 partition 2097148 0 -2

优先级

image-20230528192540186

三. 扩展

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# =========================================分割线==========================================
# 关闭所有swap :
swapoff -a
# 启用
swapon -a
# 永久关闭swap
swapoff -a #临时
sed -ri 's/.*swap.*/#&/' /etc/fstab #永久
cat /etc/fstab
# 创建swap分区的文件:
dd if=/dev/zero of=swapfile bs=1M count=8192
bs是每块的大小,count是块的数量;bs*count,就是swap文件的大小
swapfile文件路径
# 设置swap占用
$ cat /proc/sys/vm/swappiness # 查看系统的 swappiness
## 一般默认 60 (内存达40 开始使用swap)
$ sudo sysctl vm.swappiness=10 # 修改swappiness值为10
## 临时性的修改,在你重启系统后会恢复默认
$ sudo vim /etc/sysctl.conf # 永久修改
## 添加 vm.swappiness=10 保存,重启,OK
# ===============================分割线=====================================

image-20230528192848086