Linux主机swap空间

swap交换空间实际上是一个磁盘分区,在安装操作系统时,默认划分出物理内存的1~2倍空间用于交换分区,它类似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存。

启用swap分区,一定程度上可以降低物理内存的使用压力,但如果云服务器上运行的应用确实需要更多的内存,还是需要购买物理内存。

启用swap分区

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# 如果未启用swap分区功能,则新建一个专门的文件用于swap分区
dd if=/dev/zero of=/var/blockd.swap bs=1M count=8192

# 通过mkswap命令将上面新建出的文件做成swap分区
mkswap /var/blockd.swap

# 启用此交换分区的交换功能
swapon /var/blockd.swap

# 修改内核参数 /proc/sys/vm/swappiness
# 当 swappiness为 0 时,表示最大限度的使用物理内存,物理内存使用完毕后,才会使用 SWAP 分区;当 swappiness 为 100 时,表示积极地使用 SWAP 分区,并且把内存中的数据及时地置换到 SWAP 分区。
# 久修改此配置,在系统重启之后也生效
vi /etc/sysctl.conf
`vm.swappiness=60`

# 设置开机时自启用 SWAP 分区
vi /etc/fstab
`/var/blockd.swap swap swap default 0 0`

查看swap分区

free -m
swapon -s
cat /proc/swaps

关闭swap分区

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法

使用命令 swapoff 关闭 SWAP
swapoff /mnt/swap

修改 /etc/fstab 文件,删除或注释相关配置,取消 SWAP 的自动挂载