增加和禁用Swap空间

在Linux系统中,如果系统需要更多的内存资源并且物理内存已满时,将使用swap分区(交换空间)。使用交换空间为不活跃的进程和数据提供临时存储,并防止物理内存满时内存不足。交换空间充当物理内存的扩展,并允许系统在物理内存耗尽时继续平稳运行。
一、Swappiness
当内存不够用的时候会用到Swap分区,那什么时候才算是不够用呢?此时便由Swappiness参数来定,Swappiness参数是Linux内核中的一个可调参数,用于控制系统在内存不足时使用 Swap分区/文件的倾向程度。
swappiness内容的值为0时,表示最大限度地使用物理内存,物理内存使用完毕后,才会使用SWAP分区。
swappiness内容的值为100时,表示积极地使用SWAP分区,并且把内存中的数据及时地置换到SWAP分区。

表示空闲内存少于30%,内存使用率大于70%时使用SWAP分区,centos7系统中默认为30
[root@centos]# cat /proc/sys/vm/swappiness
30

设置为0后,物理内存一点都没有的时候才考虑使用swap

[root@centos]# echo 0 > /proc/sys/vm/swappiness

若需要永久修改此配置,在系统重启之后也生效的话,通过vim命令编辑/etc/sysctl.conf文件,并增加以下内容。

vm.swappiness = 10

并执行以下命令,生效配置

sysctl -p

二、交换空间(swap space)应该设置多大?
如下为RedHat推荐的系统 swap 空间:https://docs.redhat.com/zh-cn/documentation/red_hat_enterprise_linux/9/html/managing_storage_devices/recommended-system-swap-space_getting-started-with-swap#recommended-system-swap-space_getting-started-with-swap

三、增加swap分区(可以使用磁盘分区,也可以使用文件来增加)
1、使用磁盘分区:
对新添加的磁盘进行分区


更改分区的系统id

创建文件系统

写入/etc/fstab

swapon -a生效(激活所有“/etc/fstab”文件中的交换分区)

2、使用文件:
用dd创建一个512M的交换文件,将文件设置为交换分区

dd if=/dev/zero of=/swapfile bs=1M count=1024


创建文件系统

写入/etc/fstab

swapon -a生效(激活所有“/etc/fstab”文件中的交换分区)
提示建议使用600权限

提示建议使用600权限

三、禁用swap空间:
swapoff命令为临时禁用,重启后系统会重新读取 /etc/fstab,导致 Swap 分区被重新激活,所以需要注释注释 /etc/fstab 中的 Swap 条目

在/etc/fstab中禁用swap行(前面加注释)
[root@centos ~]# cat /etc/fstab
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=76f39426-adb9-41f8-bf7b-0e6c8662417c /boot                   xfs     defaults        0 0
#/dev/mapper/centos-swap swap                    swap    defaults        0 0

注释后立刻禁用再执行如下swapoff命令
查看当前已有交换分区使用情况:

关闭交换分区:

如果要开启swap,可执行swapon命令

posted @ 2025-04-12 17:24  c00kiex  阅读(242)  评论(0)    收藏  举报