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 / 问题 / 404195
Accepted
PythonLearner
PythonLearner
Asked: 2012-07-03 14:03:24 +0800 CST2012-07-03 14:03:24 +0800 CST 2012-07-03 14:03:24 +0800 CST

KVM:哪些 CPU 特性使 VM 运行得更好?

  • 772

我们使用具有以下参数的 Ubuntu 12.04:

  • 戴尔R910
  • 内核 3.2.0-25-generic #40-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
  • kvm 1:84+dfsg-0ubuntu16+1.0+noroms+0ubuntu13
  • qemu-kvm 1.0+noroms-0ubuntu13
  • qemu-common 1.0+noroms-0ubuntu13
  • qemu-kvm 1.0+noroms-0ubuntu13
  • 4 x Intel(R) Xeon(R) CPU E7- 4870 @ 2.40GHz(每个有 10 个物理内核,支持 HT 和 Intel VT)
  • Windows 客户机目前没有 VirtIO,但很快就会改变

我们在这台机器上运行几个 Windows 客户机,其中一个是 Windows 2003 32 位,另一个是 Windows 2008(64 位)。我们目前正在努力解决性能问题并尝试使用 CPU 模型。

我们通常将“qemu-system-x86_64”用于我们的 Windows 32 位客户机,例如:

/usr/bin/qemu-system-x86_64 -S -M pc-1.0 -cpu qemu32 -enable-kvm -m 4096 -smp 4,sockets=4,cores=1,threads=1 [...] 

这位嘉宾的表现竟然有点低。我们还没有运行任何基准测试,但是假设当我们将 CPU 模型从“-cpu qemu32”切换到“-cpu Nehalem”时,将 VM 内的大量数据(文件)从一个目录复制到另一个目录的速度要快得多”。过去大约需要 2:40 小时才能复制的文件现在可以在 40 分钟内完成复制。当然这不是一个高质量的测试,还有很大的空间可以进行更专业的尝试。但这是一个明确的指标,表明选择正确的 CPU 型号可能会严重影响来宾的性能。

现在我很好奇并跑了:

qemu-x86_64 -cpu ?
x86           [n270]
x86         [athlon]
x86       [pentium3]
x86       [pentium2]
x86        [pentium]
x86            [486]
x86        [coreduo]
x86          [kvm32]
x86         [qemu32]
x86          [kvm64]
x86       [core2duo]
x86         [phenom]
x86         [qemu64]

和:

kvm -cpu ?model
 x86       Opteron_G3  AMD Opteron 23xx (Gen 3 Class Opteron)
 x86       Opteron_G2  AMD Opteron 22xx (Gen 2 Class Opteron)
 x86       Opteron_G1  AMD Opteron 240 (Gen 1 Class Opteron)
 x86          Nehalem  Intel Core i7 9xx (Nehalem Class Core i7)
 x86           Penryn  Intel Core 2 Duo P9xxx (Penryn Class Core 2)
 x86           Conroe  Intel Celeron_4x0 (Conroe/Merom Class Core 2)
 x86           [n270]  Intel(R) Atom(TM) CPU N270   @ 1.60GHz
 x86         [athlon]  QEMU Virtual CPU version 1.0
 x86       [pentium3]
 x86       [pentium2]
 x86        [pentium]
 x86            [486]
 x86        [coreduo]  Genuine Intel(R) CPU           T2600  @ 2.16GHz
 x86          [kvm32]  Common 32-bit KVM processor
 x86         [qemu32]  QEMU Virtual CPU version 1.0
 x86          [kvm64]  Common KVM processor
 x86       [core2duo]  Intel(R) Core(TM)2 Duo CPU     T7700  @ 2.40GHz
 x86         [phenom]  AMD Phenom(tm) 9550 Quad-Core Processor
 x86         [qemu64]  QEMU Virtual CPU version 1.0

对于所有这些不同的版本,很难猜测。“Nehalem”似乎是该列表中性能最高的一个。现在我想知道,如何判断哪种 CPU 型号最适合我的来宾?浏览互联网,我发现了以下资源:

  • http://rwmj.wordpress.com/2010/10/08/32-or-64-bit-virtual-cpu-in-kvm/
  • http://www.linux-kvm.org/page/Tuning_KVM

当我正确阅读这些网站时,他们声称“-cpu 主机”可能会带来最佳性能。我还不担心迁移,因为两台 KVM 主机的配置相同(完全相同的硬件)。

那么,有经验的 KVM 管理员推荐什么?是否存在黄金法则甚至矩阵,例如“此模型最适合该来宾操作系统”?

如果我能自己找到这些信息,我深表歉意——我运行了各种谷歌搜索并浏览了许多网站。我找不到能回答我问题的东西。

virtualization central-processing-unit kvm-virtualization qemu
  • 5 5 个回答
  • 94193 Views

5 个回答

  • Voted
  1. Best Answer
    dyasny
    2012-07-04T04:38:32+08:002012-07-04T04:38:32+08:00

    这真的很简单。对于同类集群和单主机设置,请使用该host选项。对于混合集群,使用可用的最低 CPU 版本,因此如果一台主机是 Penryn 而另一台是 Nehalem,则在两者上都使用 Penryn。

    如果您使用的是 RHEV 或 oVirt,它已经内置。VMWare 将其称为“EVC”并将其定位为一项重要功能。

    回到性能上来,你绝对需要 virtio,只要你能把它放在任何地方。如果您仍然遇到性能瓶颈,通常可以根据具体情况逐个解决这些瓶颈,具体取决于它们发生的位置。

    [offtop]关于你选择的发行版我已经在另一个帖子中评论过了[/offtop]

    • 15
  2. Gregory MOUSSAT
    2012-07-03T15:08:27+08:002012-07-03T15:08:27+08:00

    Windows 客户机目前没有 VirtIO

    不要因为调整任何东西而浪费更多时间。
    安装 virtIO 驱动程序并返回。差异是如此之大,以至于您现在可以找到的任何增强功能对 virtIO 都没有任何意义。

    仅以我们的一台服务器为例:
    - 如果没有 virtIO,W2k3 可以处理大约 10 个终端服务器用户
    - 使用 virtIO,具有相同操作系统的同一台机器目前可以处理 120 到 125 个用户,速度几乎没有下降。我们添加了另一台虚拟机来在同一台物理计算机上运行 SQL Server

    • 11
  3. Jeff Ferland
    2012-07-03T14:28:05+08:002012-07-03T14:28:05+08:00

    Qemu 的工作方式与许多其他管理程序不同。对于初学者,它可以提供完整的仿真。例如,这意味着您可以在 ARM 处理器上运行 x86 代码。在 KVM 模式下,当您使用它时,它实际上并没有这样做……处理器无论如何都会暴露,但是向操作系统报告的内容将被-cpu标志更改。

    如果您想要更快的速度,那么尝试将虚拟处理器的功能尽可能与您的真实处理器相匹配是一个起点。这将减少调用次优操作码来运行任务的情况,并且还将减少硬件上不可能首先转换为其他内容的操作码。由于您的 Xeon 处理器型号于 2011 年初发布,它可能主要支持 Core i7 系列。为此,我认为 Nehalem 架构是您最好的模拟。

    引用您的一个链接(调整 KVM):

    要将所有可用的主机处理器功能传递给来宾,请使用命令行开关

     qemu -cpu host
    

    如果您希望保持兼容性,您可以向来宾公开选定的功能。如果您的所有主机都具有这些功能,则会保留兼容性:

     qemu -cpu qemu64,+ssse3,+sse4.1,+sse4.2,+x2apic
    

    因此,如果您觉得您最终可能会四处移动足以产生问题,您可以找到您认为您现在拥有或将来可能拥有的任何处理器支持的所有受支持的指令集,并将它们列出来。

    但是,大多数时候,您想坚持使用-cpu host. 指定具有较少可用标志的 CPU 意味着应用程序将避免使用可以使它们更快的功能。

    • 10
  4. Joe Huss
    2014-03-19T14:01:28+08:002014-03-19T14:01:28+08:00

    您混淆了“-cpu 主机”选项。此选项不会仅启用特定于您的主机系统的所有 CPU 功能,它会启用您的 CPU 支持的所有功能以及所有可以模拟的功能,即使您的 CPU 不支持它们也是如此。

    -cpu host
    是一个不错的选择但不是最有效的,因为它可能会启用您的 cpu 不支持的可以模拟的选项,来宾系统在尝试使用这些需要模拟的功能之一时可能会稍微慢下来.

    资料来源:http ://wiki.qemu.org/Features/CPUModels

    • 3
  5. Marc Cyr
    2015-09-24T15:09:23+08:002015-09-24T15:09:23+08:00

    CentOS 6.7 在 Dell R910 上为我提供了适当的 KVM+Spice 性能。我想一旦你试一试,你就不会再做任何其他事情了(说真的)!

    • -2

相关问题

  • 哪些 939 插槽芯片支持 AMD-V?

  • Windows Server 2008 Hyper-V 虚拟化服务器的最佳 RAID 配置?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 物理机重启时自动重启虚拟机(VMWare)

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