云服务器设置虚拟内存
# 云服务器设置虚拟内存
# 为什么要设置Swap?
Swap全称为swap place,即交换分区。当内存不够的时候,被踢出的进程被暂时存储到交换区。 当需要这条被踢出的进程时,就从交换区重新加载到内存,否则它不会主动交换到真实内存中。
总结就是:用磁盘来伪装成内存。
也就是说我们我们寸土寸金的云服务器
可以通过设置Swap来曲线救国,假装把2G的内存当成12G的来用。
# 设置过程
- 使用 dd 命令来创建 Swap 文件
计算大小方式:10 * 1024 * 1024 = 10485760
就是10GB。
dd if=/dev/zero of=/var/swapfile bs=1024 count=10485760
1
- 设置为交换区
mkswap /var/swapfile
1
- 挂载激活分区
swapon /var/swapfile
1
- 设置分区在开机的时候自动挂载
echo "/var/swapfile swap swap defaults 0 0" >> /etc/fstab
1
- 调整使用交换区依赖程度参数
如果内存够大,应当告诉 Linux 不必太多的使用 Swap 分区,
可以通过修改 swappiness 的参数来设置。
swappiness=0 的时候表示最大限度使用物理内存,然后才是 Swap 空间,
swappiness=100 的时候表示积极的使用 Swap 分区,并且把内存上的数据及时的搬运到 Swap 空间里面。
查看目前使用的数值:
cat /proc/sys/vm/swappiness
1
调整数值
- 临时性修改
sysctl vm.swappiness=10
1 - 永久性修改,重启后依旧生效
echo "vm.swappiness = 10" >> /etc/sysctl.conf
1
# 后悔了,不想设置了
- 关闭挂载激活的分区
swapoff /var/swapfile
1
- 删除设置的分区文件
rm -rf /var/swapfile
1
- 删除开机自动挂载分区的配置
vim /etc/fstab
1
然后删除/var/swapfile swap swap defaults 0 0
这行内容,不出问题的话应该在最后一行。
编辑 (opens new window)
上次更新: 2023/05/28, 08:23:00