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 / 问题 / 462106
Accepted
TomTom
TomTom
Asked: 2013-01-02 08:06:47 +0800 CST2013-01-02 08:06:47 +0800 CST 2013-01-02 08:06:47 +0800 CST

Hyper-V 线程优先级主机和来宾 - 它们如何对应?

  • 772

是的,有趣的问题。

给定:Hyper-V 虚拟机的主机。HPC 类型的集群。

上面有许多虚拟机。他们大部分时间都不会用完 CPU。我们还在内部运行一个 HPC 风格的集群——代理拉取作业并处理它们。

有一个关于在我们的 Hyper-V 机器上安装代理的谈话。目前这会给我们带来显着的性能提升——我们需要夏天才能真正提升计算集群的硬件。

代理在低优先级线程中运行所有计算。对于普通计算机,这意味着代理基本上会最大化 CPU 使用率,但不会真正干扰计算机操作本身——我什至可以在代理运行时观看 DVD。

现在,Hyper-V 的情况如何?Hyper-V 内核赋予虚拟 CPU 什么“线程优先级”?根分区是否比虚拟机具有更高的优先级?我不希望代理干扰正在运行的虚拟机。

hyper-v
  • 2 2 个回答
  • 2138 Views

2 个回答

  • Voted
  1. Best Answer
    Jake Oshins
    2013-01-03T10:50:18+08:002013-01-03T10:50:18+08:00

    Hyper-V 父分区或管理操作系统在管理程序中是特殊的。如果它的虚拟处理器是可运行的,那么它们的优先级将大大高于来宾虚拟机。这是因为,在受支持的 Hyper-V 配置中,管理操作系统唯一做的事情(从统计上讲)是代表来宾 VM 的 I/O。如果您在管理操作系统中安装任何其他东西,那么您将代表来宾 VM 抢占工作。

    我假设您已经想到了这一点,但您可以通过受支持的方式来做到这一点。创建一个与物理机大小基本相同的 VM。给它非常低的 CPU 和内存权重并打开动态内存,以便在空闲时不会使用太多内存。在该 VM 中运行您的计算任务。然后,Hyper-V 将更愿意为任何其他来宾而不是那个来宾工作,但会代表您的计算任务使用空闲周期。

    • 5
  2. Ryan Ries
    2013-01-02T10:37:14+08:002013-01-02T10:37:14+08:00

    首先,我要解决这个问题:不建议在 Hyper-V 的父分区(主机操作系统)上运行任何额外的工作负载。它的唯一目的是为系统上的其他来宾 VM 提供管理和控制功能,并让管理员查看系统上的其他来宾 VM。也就是说,您当然可以做到,而且它可能对您很有用。但是 Microsoft 的官方立场是避免在您的父分区上运行任何额外的工作负载。现在那已经不在了:

    Happy fun ASCII架构图:

    | Parent | Child | Child | Child |
    ----------------------------------
                Hypervisor
    ----------------------------------
             Physical Hardware
    

    父分区是您启动并从中创建和控制所有其他子 VM 的操作系统,它本身实际上只是与子分区处于同一级别的另一个逻辑分区。所有这些分区并行运行。唯一的区别是根分区被管理程序赋予了特殊的特权和责任。您可以通过 Hyper-V 管理控制台为子虚拟机分配 CPU 权重、储备和限制,但我不清楚这些是否或如何映射到我们所知道的管理程序中的线程优先级。

    在您的根分区(或管理操作系统或主机操作系统)上,您将看到每个虚拟机都有一个 vmms.exe 和 1 个 vmwp.exe 实例。VM 管理服务 (vmms.exe) 负责为管理程序提供 WMI 接口,以便您可以从 MMC 管理 VM。当您在系统上创建新 VM 时,它还会创建一个新的 vmwp.exe 实例。VM 工作进程 (vmwp.exe) 执行典型的单片管理程序将执行的虚拟化工作,例如管理虚拟机的状态。

    在子分区执行大量 I/O 或特权操作的系统上,您会希望大部分 CPU 使用率在父分区中可见:您可以通过名称 Vmwp.exe(每个子分区一个)来识别它们。工作进程还包括负责远程管理虚拟化堆栈的组件……-- Russinovich 等人,Windows Internals 第 6 版。

    但不幸的是,就 VM 内部发生的一切而言,vmwp.exe 并不是全部,如果您正在考虑从管理操作系统中操纵这些进程的优先级,您可能处于未知状态,可能不支持的领土。还有超级调用和启发式调用等,它们可能不会对 vmwp.exe 进程收费,但仍可被视为虚拟机整体工作负载的一部分。

    除了可能存在于根分区而不是子分区中的关键 Hyper-V 组件之外,它们可能会抢占其他子 VM 代码的执行,我假设所有分区在线程调度方面都与管理程序相同。

    遗憾的是,Microsoft 并未发布很多深度技术文章来回答这些问题。如果不是 Russinovich 和他的朋友,我们甚至不会有Windows Internals。那里有一个关于 Hyper-V 的简短部分,我在撰写这篇文章时参考了它,但即使它并不比这篇文章更深入。

    • 4

相关问题

  • Hyper-V 企业许可 - 包含的 CAL 是否应用于每个 VM 或每个 VM?[复制]

  • Hyper-V 和 Drobo Pro

  • 小型企业的服务器虚拟化/RAID 配置

  • 交换服务器 2003 在 hyper-v 上

  • 在同一台机器上将域控制器作为 1 个 VM 和一个 RODC 作为另一个 VM 运行,它会工作吗?

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