Swap (小内存机型优化)
中文名:交互分区、虚拟内存(Windows)
作用:当内存不足时,拿出一部分硬盘作为内存使用用来缓解内存不足的情况。
举例一个场景
2h2g 的服务器作为 vscode 的远程开发机,配置不够。vscode建议最少4GB内存,低于这个标准就容易死机造成断联。
一、如何查看是否开启 swap?
部分服务器已经开启了 swap
,就没必要重复打开了。
最简单的办法就是使用 top
命令,查看 MiB Swap
项是否有数值。
其中
- total 是虚拟内存容量
- free 是剩余可用
- used 是已经使用的
如果 used
一直是 0
说明没有配置好下列参数
- vm.swappiness
- vm.min_free_kbytes
可以在第二部分找到单独配置一下~
二、从零开始开启 swap
# 创建一个 8GB 的 swap 交互文件
sudo fallocate -l 8G /swapfile
# 修改权限
sudo chmod 600 /swapfile
# 在一个文件或设备上建立交互分区
sudo mkswap /swapfile
# 启动交互分区
sudo swapon /swapfile
# 挂载
vi /etc/fstab
# 在结尾加入
/swapfile none swap sw 0 0
# 配置使用swap的条件
vi /etc/sysctl.conf
# 加入或编辑两行配置
vm.swappiness = 60 # 权重, 默认 60 (0=从不使用, 100=积极使用)
vm.min_free_kbytes = 500000 # 当剩余内存低于此值时(KB), 使用 swap
# 最后,重启生效 :)
reboot
配置说明
vm.swappiness (分配 swap 交互内存权重)
取值范围
0-100,默认 60
建议优化策略
当内存小于 2GB 可以改为 80
当内存小于 4GB 可以改为 25-60
当内存大于等于 8GB 时建议改为 0,不要使用
swap
温馨提示
vm.swappiness
不是越大越好首先大于 8GB 内存没必要开
低于 8GB 内存也不建议设置过大,性能受制于 io 和 cpu;
设置过大可能造成负优化
vm.min_free_kbytes (当剩余内存低于此值时,使用swap,单位为KB)
建议优化策略
内存越小,该值可以略大。防止突发内存需求造成死机。
我 2h2g 设置
500000(488MB)
仅供参考