给Linux服务器添加Swap交换空间

演示系统:Debian Server 11,所有操作在root用户模式下

计算机中Swap空间也就是交换空间,当实际内存不够用的时候,操作系统会使用Swap空间应急。

但swap是使用硬盘上的一部分,所以速度很慢。

1. 检查时候有Swap空间

我们可以看到Swap空间为空

2. 创建swap分区

创建2G的swap,可以根据你的服务器配置来调整大小,一般情况下,Swap空间不需要很大:

dd if=/dev/zero of=/mnt/swap bs=1M count=2048  

设置交换分区文件:

mkswap /mnt/swap

启动swap:

swapon /mnt/swap

设置开机时自启用 swap 分区,需要修改文件 /etc/fstab 中的 swap 行,添加以下代码:

/mnt/swap swap swap defaults 0 0

如图所示

重启服务器之后,可以看到多出了swap空间:


额外:设置系统使用交换空间的频率

简略版:

我们还可以通过修改/etc/sysctl.conf配置文件,来设置系统使用交换空间的频率。

配置其中的vm.swappiness参数,值为0-100的数值,数值越大,使用交换分区频率越高。

例如配置频率为10,则修改这一项最终为:

vm.swappiness=10

如果没有这一项就加上去。

最后执行命令sysctl -p使配置生效。

使用频率建议根据实际情况修改,一般不建议太大,因为过度使用交换空间会使CPU和磁盘读写占用过高影响性能。


完整说明:

swappiness参数值说明

vm.swappiness = 0

仅在内存不足的情况下–当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。

vm.swappiness = 1

内核版本3.5及以上、Red Hat内核版本2.6.32-303及以上,进行最少量的交换,而不禁用交换。

vm.swappiness = 10

当系统存在足够内存时,推荐设置为该值以提高性能。

vm.swappiness = 60

默认值

vm.swappiness = 100

内核将积极的使用交换空间。

对于内核版本为3.5及以上,Red Hat内核版本2.6.32-303及以上,多数情况下,设置为1可能比较好,0则适用于理想的情况下(it is likely better to use 1 for cases where 0 used to be optimal)

修改swappiness的值

1. 临时设置(重启后失效)

# sysctl -a | grep vm.swappiness

vm.swappiness = 30

# echo 10 > /proc/sys/vm/swappiness

# sysctl -a | grep vm.swappiness

# vm.swappiness = 10

注:必须以root用户登录

可选方法如下

# sysctl -w vm.swappiness=10

vm.swappiness = 10

# cat /proc/sys/vm/swappiness

10

2. 永久设置

在/etc/sysctl.conf中编辑,增加如下参数(如果存在的话)

vm.swappiness = 10

分享你的喜爱

留下评论

您的电子邮箱地址不会被公开。 必填项已用*标注