演示系统: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