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 / 问题 / 562343
Accepted
Granger
Granger
Asked: 2013-12-19 17:23:49 +0800 CST2013-12-19 17:23:49 +0800 CST 2013-12-19 17:23:49 +0800 CST

如何仅为 VM 保留 Hyper-V 2012 主机分区上的 RAM?

  • 772

我有一种情况,Hyper-V 2012 群集节点在我认为应该支持 2 个虚拟机时却无法支持。目前,我正在使用 96GB RAM,并且我希望运行 2 个 47GB 虚拟机(静态 RAM)。这为主机留下了 2GB 的空间,这应该足够了。但是,我无法运行第二个 VM,因为该软件抱怨没有足够的内存供它使用。

接下来,我将每个 VM 减少到 46GB,但它仍然不支持 2 个 VM。从节点运行“taskmgr”,它报告“正在使用”51GB,“44.9GB”可用。我不明白为什么 46GB 的虚拟机会在主机分区中产生 5GB 的开销。查看正在运行的进程,列出的 RAM 加起来不到 500MB。

我想告诉 Hyper-V 明确保留除 2GB 以外的所有空间,仅用于 VM 使用。

此外,最好知道为什么管理程序“需要”5GB。有没有办法告诉 Hyper-V 在内部使用 RAM 做什么?或者 Hyper-V 2012 是否有关于主机实际需要多少 RAM 的新计算(因为 2GB 并没有削减它)?

编辑 - 2014-02-14

在查看了 4 个不同的 Hyper-V Server 2012r2 主机和一个 2008r2 之后,非分页池随着物理安装的 RAM 线性增长。CPU是AMD还是Intel都没关系。主机是否是 Windows 集群的一部分并不重要。主机是否加入域并不重要。主机上运行了多少虚拟机(或者这些虚拟机消耗了多少内存)并不重要。最后,我认为这也是 2012r1 的行为,因为当 2012r2 主机都是 2012r1 时,我有这些症状。

在所有情况下,我发现将已安装 RAM(以 GB 为单位)的数量乘以 0.0425 将告诉您有多少 RAM(以 GB 为单位)丢失到非分页池中。(这是一个非常接近的估计。)

所以直到微软修复他们的软件,或者正式承认这种行为是设计的,答案是使用每个人常用的计算(如下面的答案所示),然后加上上述计算的结果来解释您将失去非分页池的 RAM。(或者,如果您愿意,我在这里有一个带有示例的摘要。)

PS:我觉得重要的是要注意我一直在写“GB”,但我只是使用 Windows 报告的内容。Windows 和 RAMMap 报告的数字不是 GB/KB,实际上是 GiB/KiB,因此将 Nonpaged Pool 计算的结果乘以 1024 与 RAMMap 报告的“K”数进行比较。

memory
  • 1 1 个回答
  • 8708 Views

1 个回答

  • Voted
  1. Best Answer
    balwa
    2014-02-03T00:14:56+08:002014-02-03T00:14:56+08:00

    资源

    300 MB 用于 Hypervisor,32 MB 用于分配给每个虚拟机的第一 GB RAM,另外 8 MB 用于分配给每个虚拟机的每额外 GB RAM,另外 512 MB 用于在根分区上运行的主机操作系统

    作为一般经验法则,计划为根分区分配至少 512 MB 内存,以提供 I/O 虚拟化、快照文件支持和子分区管理等服务。

    300+32+(45*8)=692MB 对于第一个虚拟机

    两个虚拟机的 692+32+(45*8)=1084

    1084+512=1596MB 总占经验法则

    所以这只是管理程序的消耗。现在考虑到即使配置了第一个 VM,您也使用了超过 5 GB 的空间。我建议在命令提示符下查看任务列表的输出并查找消耗 RAM 的服务器进程

    • 1

相关问题

  • 不会将整个 XML 文件读入内存的命令行 XML 验证器?

  • 在 Windows Server 2008 中,为什么我的 BIOS 和计算机属性显示我安装的所有 RAM,但任务管理器没有?

  • 如何使用 vmstat 获取 % 内存使用率?

  • 规格相同但引脚不匹配的 DDR2 模块?

  • ECC RAM、后台清理和 IOMMU BIOS 设置

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