Proxmox VE swap虚拟内存讲解。让内存超起来。

Linux要超内存,自然需要依靠swap

Swap虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。

什么时候可以启用swap

如果物理内存不足,或者防止突然的内存溢出,导致进程被杀死。可以用swap

如何启用swap

可以将一个分区,或者一个文件作为swap,使用swapon启用。

以文件形式

#创建一个16G的swap,bs * count =16G
dd if=/dev/zero of=/swapfile bs=1G count=16
#配置安全的权限
chmod 0600 /swapfile
#格式化成swap
mkswap /swapfile
#挂载swap
swapon /swapfile
#验证
free -h

以分区形式

创建一个新的分区,如/dev/sdb4

#格式化成swap
mkswap /dev/sdb4
#挂载swap
swapon /dev/sdb4
#验证
free -h

Swap策略?

Linux有个内核参数vm.swappiness。值为0-1000代表不怎么想用swap100代表非常想用swap

举个例子,电脑有 16 GB 的内存和 8 GB 的swap。如果我在内核参数中使用 60 swappiness,那么在使用大约 6 GB (16G*40% == 6.4G)的内存后,机器开始使用swap。

查看当前的swap策略

要检查系统上的当前 swappiness 值,请使用以下 cat 命令:

cat /proc/sys/vm/swappiness

# 大多数 Linux 发行版上的默认 swappiness 值为 60

您可以用来确定 swappiness 值的另一个命令是 sysctl :

sysctl vm.swappiness
vm.swappiness = 60临时调整的方法如下,我们调成10:

临时调成swap策略

# 方法1:
[root@timeserver ~]# sysctl vm.swappiness=10
vm.swappiness = 10

# 方法2:
[root@timeserver ~]# echo 10 > /proc/sys/vm/swappiness

新值会立即使用,无需重新启动。 这只是临时调整的方法,重启后会回到默认设置的

永久更改Swappiness 值

要想永久调整的话,需要在/etc/sysctl.conf修改,加上:

[root@timeserver ~]# cat /etc/sysctl.conf
vm.swappiness=10

激活设置

[root@timeserver ~]# sysctl -p

启用Swap有什么优劣?

优:缓解物理内存压力

1Swap没有物理内存的速度,过多使用Swap会降低运行性能。且如果Swap所在的硬盘性能不足,还会导致严重的io延迟。总体性能下降明显。Windows虚拟机会明显卡顿。

劣2:如果大量使用swap,可能造成内存错误!

如何减小Swap的不良影响

  1. 使用一块或者多块高性能的NVME硬盘做swap
  2. 增加物理内存。

版权声明:
作者:佛西
链接:https://foxi.buduanwang.vip/virtualization/pve/2680.html/
文章版权归作者所有,未经允许请勿转载
如需获得支持,请点击网页右上角
THE END
分享
二维码
海报
Proxmox VE swap虚拟内存讲解。让内存超起来。
Linux要超内存,自然需要依靠swap。 Swap虚拟内存,就是当内存不足的时候,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。 什么时候可以启用s……
<<上一篇
下一篇>>
文章目录
关闭
目 录