交换空间的作用
当系统需要比物理内存更多的内存空间的时候,内核会把内存里边使用率较少的内存页面转移至到交换空间,以腾出物理内存给当前应用来快速运行。交换空间可以是磁盘的一个分区,也可以是一个文件。
下面主要分享如何配置文件形式的交换空间~
添加交换空间
1.判断系统是否配置交换空间
在操作之前先查看系统当前是否有配置交换空间,可以通过以下两条命令判断:
# 查看内存使用情况
free -m
# 查看启用的交换空间
swapon --show
如果以上两条命令检查出没有交换空间,进行下一步操作。
2.创建 swap 交换空间文件
使用 dd 命令在根目录创建名为 swap 的空文件
dd if=/dev/zero of=/swap bs=1M count=1024
Tips:/dev/zero 是一个特殊的字符设备文件,当我们使用或读取它的时候,它会提供无限连续不断的空的数据流。以上命令将会创建每块大小为 1M,块数量为 1024,合计容量为1GB的空文件(文件大小=块大小*块数量)
设置swap文件权限(仅属主有读写权限)
chmod 600 /swap
将文件格式化为swap交换空间
mkswap /swap
使用创建的 /swap 文件,激活为交换空间
swapon /swap
查看系统交换空间配置状况
swapon --show
执行这条命令后如果输出内容中显示有 /swap 的交换空间,说明已经成功启用。
3.设置自动激活交换空间文件
通过以上的操作已经成功添加交换空间,但是重启后会失效,原因是系统没有配置启动后自动挂载。
使用 nano 编辑系统配置文件
nano /etc/fstab
添加以下代码到配置文件底部
# Swap Settings
/swap swap swap defaults 0 0
重启 VPS ,重启后查看内存和交换空间情况,确保 swap 有自动激活。
重启:reboot
检查内存状态:free -m
查看启用的交换空间:swapon --show
调整Swappiness值
swappiness 是 Linux 的内核参数,用于控制换出运行时内存的相对权重。该参数值可设置范围在0到100之间。低参数值会让内核尽量少用交换,更高参数值会使内核更多的去使用交换空间。
swappiness 不能设置得太高或太低,太高的值会受硬盘速度影响拖慢系统,太低的值会导致内存占满了还没调用交换空间。
1.检查当前的swappiness值
cat /proc/sys/vm/swappiness
输出结果:60
2.设置 swappiness 值
编辑系统配置文件
nano /etc/sysctl.conf
在底部添加以下内容
# Swappiness Settings
vm.swappiness=50
重新加载系统配置
sysctl -p