VPS 增加Swap交换分区与调优
之前在Google Cloud Platform免费申请&一键搭建SSR & BBR加速教程中搭建的VPS, 使用的是最小配置(微型0.6G内存), 如果不够用的话可以增加Swap交换分区.
Swap分区在系统的物理内存不够用的时候,把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。
1. 增加Swap交换分区
切换到root用户
sudo -i
创建一个1G大小的虚拟磁盘
dd if=/dev/zero of=/swapfile bs=1M count=1024
一般建议Swap为内存大小的2倍, 我这设置的1G.
if: 输入文件
/dev/zero: 造0器
of: 输出
bs: 块大小
count: 块数
格式化
mkswap -f /swapfile
修改权限
chmod 0600 /swapfile
挂载swap
swapon /swapfile
查看是否有swap分区
free -m
如需卸载, 使用命令: swapoff /swapfile
到这一步基本已经完成了.
不过系统重启后需要手动挂载swap文件.
如果想让系统重启后自动挂载, 需要修改配置文件 vim /etc/fstab
:
在最后一行添加
/swapfile none swap sw 0 0
2. 调优
2.1 swappiness
swappiness参数控制换出运行时内存的相对权重. 范围0-100, 默认为60. 低的参数值会让内核尽量少用交换,更高的参数值会使内核更多的去使用交换空间. 这里我们设为10.
sysctl vm.swappiness=10
临时设置, 重启失效
编辑启动配置 vim /etc/sysctl.conf
, 在最后一行添加 vm.swappiness=10
2.2 vfs_cache_pressure
vfs_cache_pressure
设置内核回收用于directory和inode cache内存的倾向, 默认为100, 我们设为50.
sysctl vm.vfs_cache_pressure=50
临时设置, 重启失效
编辑启动配置 vim /etc/sysctl.conf
, 最后一行添加 vm.vfs_cache_pressure = 50