这两天新百飘到了do和az,发现什么都还没装内存内存900M已经满了,而内存交换区也才256M,不够用,于是搜索了很多文章总结了一下需要把swap设置高一些。在此做个记录也避免以后少走点弯路。
一、Swap 分区是什么
Swap(Swap 分区、Swap 内存),中文名是交换分区,类似于 Windows 中的虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。
因此,Swap 分区的作用就是牺牲硬盘,增加内存,解决 VPS 内存不够用或者爆满的问题。
二、Swap 分区大小选择
Swap 合理的大小是与 VPS 的物理内存有关的,目前老王找到一个比较靠谱的关系表(Red Hat Enterprise Linux):
- 内存 <= 4g:Swap 至少 内存两倍
- 内存 4~16G:Swap 至少 8G
- 内存 16G~64G:Swap 至少 16G
- 内存 64G~256G:Swap 至少 32G
具体步骤
创建分区
1.输入命令 free -m 查看当前内存使用情况,输入lsblk检查是否正常使用swap;
(如果之前有swap很小,先删除:swapoff -a -> rm -rf /swapfile)
2.输入命令dd if=/dev/zero of=/swap bs=1M count=1024 (1024表示硬盘分出1G空间作为swap分区,可以根据需要灵活修改)
3.启用新swap分区,输入chmod 600 /swap设置权限(非必要)。
4.设置交换分区输入 mkswap /swap
5.启用新swap分区:输入swapon /swap
6.查看状态:swapon -s
设置开机自动挂载新分区:
编辑文件:vim /etc/fstab
在最后一行添加 /swap swap swap defaults 0 0保存退出
优化设置交换频率和缓存(可选操作,一般可不设置):
编辑文件:vim /etc/sysctl.conf
在最后一行添加:
vm.swappiness=10
vm.vfs_cache_pressure=50
保存退出。