AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1142099
Accepted
adrian
adrian
Asked: 2023-08-22 09:17:55 +0800 CST2023-08-22 09:17:55 +0800 CST 2023-08-22 09:17:55 +0800 CST

内存膨胀不会尝试回收页面缓存

  • 772

我有一台运行 Proxmox 的主机,上面有一些虚拟机。由于某些应用程序的内存使用情况具有不可预测性,并且希望在有可用内存时为某些虚拟机(如数据库)提供内存用于页面缓存,因此我过度配置了内存。

我尝试通过尝试使用比主机更多的内存来测试此设置的可靠性,并且此 OOM 杀死了虚拟机,而不是尝试回收其他虚拟机的页面缓存。

我可以做些什么来让气球驱动程序回收内存,还是我误解了内存气球的工作原理?

kvm-virtualization
  • 1 1 个回答
  • 22 Views

1 个回答

  • Voted
  1. Best Answer
    John Mahowald
    2023-08-25T08:41:59+08:002023-08-25T08:41:59+08:00

    在负载转移的情况下,向 VM 来宾过度配置内存始终存在成为非常严重问题的风险。最重要的是,膨胀使容量规划变得更加复杂。

    首先,气球。这意味着有意识的来宾保留其最大内存和当前内存之间的差异,为主机留下一些可用内存。确认您的访客拥有必要的驱动程序,服务器 Linux 发行版可能具备。Linux KVM 要求用户更改当前大小;我假设您没有手动调整气球大小。

    Proxmox 发行版有所不同。pvstatd 能够自动气球,根据配置的内存份额和可用主机内存调整来宾大小。找出来宾的配置共享是什么,并阅读日志以了解发生的气球事件。

    假设来宾在内存容量的顶端启动。主机在进程中分配一些 GB 的内存。尽管 Linux 内存管理在使用物理内存页方面很懒惰,但在引用大量来宾内存之前,不会花费那么长时间。同时,Proxmox 会注意到并自动调整气球还需要一段时间。特别是 Linux 客户机可以非常快地放弃缓存,但是这种膨胀是以监控工具的速度而不是以内核的速度移动的。主机操作系统内存管理可能会耗尽其回收选项和 OOM 终止,这并不奇怪。

    一个您不喜欢的安全选项是,不要过度配置来宾内存,这也意味着没有气球。根据其固定共享内存或任何其他算法调整数据库大小。将应用程序服务器的大小调整为大约最大预期或观察到的内存。内存费用购买了可预测的性能。

    将访客和主机利用率设定为低于最大值的某个位置。尽管工作流程差异很大,因此您可以获得的结果也会有所不同,但利用率可能为 80%。该缓冲区为管理事物(例如内核的系统内存)留下空间,其余空间用于缓存。

    如果您想要超额配置,您的容量规划需要更加复杂。减少客户机大小,直到获得不会导致主机 OOM 的负载。在容量极限时开始新客人之前调整客人气球。研究和调整 Proxmox 的自动系统并测试它是否有帮助。

    • 1

相关问题

  • Xen 与 KVM 的性能对比

  • 什么是bridge_fd?

  • 如何在 kvm-linux 中登录除 ssh、vnc 之外的控制台

  • Linux 内核虚拟机

  • Vista 上的 VNC

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve