科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道服务器组件为什么虚拟化在AMD皓龙处理器上运行速度更快

为什么虚拟化在AMD皓龙处理器上运行速度更快

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

来源:ZDNet 2009年12月14日

关键字: 皓龙 服务器 AMD

  • 评论
  • 分享微博
  • 分享邮件

随着虚拟化在数据中心的广泛采用,硬件供应商开始推出专为虚拟化主机而设计的系统。例如戴尔的R805 和 R905服务器系统具备几种关键特性,有助于虚拟化软件发挥最佳性能。(注意,虽然我因为使用过戴尔的系统而在文章中提到,但是要注意HP BladeSystem BL495c 和HP ProLiant DL385G5p系统同样也可以对虚拟化负载加以优化。)这些系统拥有高速的处理器、极大的内存以及卓越的I/O性能,尤其是网络带宽方面。本文将要展开讨论这些性能特点,并阐述在同等配置的系统上基于AMD皓龙™处理器的系统性能要比使用其他x86处理器的系统性能表现更为卓越的原因。

虚拟化主机就是运行管理程序软件基础的服务器,而管理程序软件则运行虚拟机。大部分主机会运行几个到大约30个的虚拟机。一些主机能够运行30多个虚拟机,但是它们在当今的IT业中很罕见。为了正常运行大量虚拟机,主机必须具备我之前讨论过的性能特点。让我们了解一些详细信息。

• 大量的内存。当虚拟机启动时,其配置中指定的所有内存通常会被分配并保持锁定状态,直到虚拟机关闭。这样也许看起来是浪费内存,但实际上它将所有的虚拟机内存放入单一的内存分配块中(如果可能的话),从而有助于提高性能。该设计还可保证虚拟机拥有配置给它的所有内存。这种所谓的“贪心”的分配方式的不足之处是运行较多的虚拟机的主机需要大量内存。16GB对于虚拟化主机来说实在是其RAM容量的最低点了,32GB才是说得过去的最低值。

• 网络I/O容量。多数主机并不在本地存储虚拟机数据。原因很明确:可扩展性。如果主机支持虚拟机使用本地硬盘,一个或两个磁盘密集型虚拟机就会让其他虚拟机没有磁盘空间可用。因此,数据就以远程方式被保存在SAN或其他企业存储器中。要来回传输数据,就需要大的网络通道,可以是GbE卡或者光纤通道适配器。为此,Dell R905服务器配备了4个内置GbE适配器,和7个针对不同适配器的PCIe插槽,包括光纤通道所指用的插槽。

• 高效的处理器:当多个虚拟机同时运行时,它们将在主机上共享处理器。如果只有少数几个虚拟机运行时,这种资源竞争可由处理器的多个核心来处理——根据需求和可用性,为每个虚拟机分配一个或两个核心。当虚拟机数目多于可用核心时,管理程序必须让虚拟机进进出出,让它们能够短暂地访问处理器。为了达到此目的,处理器不仅要快,还必须执行特定的功能,特别是是内存管理方面,需要很有效地为虚拟机提供所需的性能。

为了进行处理器共享、网络化I/O和内存分配,许多企业级管理程序,例如VMware 的VI3中的管理程序,能够接管许多通常由操作系统处理的功能。实际上,VI3被设计在针对其特制的Linux®内核里,而内核则安装在主机系统的裸机上。(本文最后的“资源”一节中提供了下载VMware ESXi server——即在VI3中运行的管理程序——的链接,以及其他可下载管理程序的链接。)
管理程序是多种软件的组合,需要在很大程度上依赖它们下面的硬件。正是由于这个原因,AMD和其他x86处理器供应商在处理器硅片上增加相应的技术,从而易于处理一些难度较大的操作。这些有助于管理程序解决一些特定的权限难题,特别是运行时可能出现的处理器琐机现象。这一进步使得虚拟化的性能真正腾飞,最终开始达到足够接近原来物理机的性能水平,从而使得其间的差异不再是人们接受的障碍。

AMD便于虚拟化的内存管理

AMD皓龙处理器一直以其直接在芯片上配备内存控制器而与众不同。该设计允许处理器解决其自己的内存提取问题;无需向芯片组部件发送请求,然后再通过内存总线将其送回,从而取回数据。当系统有多个核心时,AMD的这种设计优势就会成比例的增加,该配置也是虚拟主机所必需的。

在非AMD x86设计中,来自所有处理器的内存请求都沿着内存总线而汇聚,如果内存访问量大就会导致严重的延迟。在AMD设计中,如果内存地址在处理器负责的内存区域内,那么每个芯片则处理自己的请求。如果地址在芯片组指定的内存外,请求则会通过高速连接到合适的内存管理器传输。就系统架构而言,基于AMD处理器的设计被称为NUMA,是一种非统一内存架构。非统一是指在处理器的专用RAM中执行内存提取比其他内存提取更快,这要归功于专用的片上内存管理器。

当今的管理程序充分利用了AMD的NUMA架构。在可能的范围内,它们会通过协调将虚拟机安排到由单一处理器管理的内存范围内,从而使虚拟机进行的所有内存访问都由内存管理器在本地处理。该步骤与采用内存总线的方法相比,有助于减少内存提取的延迟。

AMD的其他秘密武器

还有一些其他的硬件功能让管理程序在四核AMD皓龙处理器上快速运行。这些是AMD虚拟化™ (AMD-V™)技术最新添加的功能,使该公司虚拟化技术性能增强。其中第一个独特优势就是嵌套分页(nested paging),这需要解释一下。

x86系统中的内存地址并非由指向特定字节的顺序性字节数。事实上,地址包含一系列数位,这些数位一个由表构成的序列,这些表确定了内存中的特定页面以及该页面内的字节数。如果该页面目前在内存中,它就是被访问过的;否则该页面就从它存储所在的设备中记调进来。这一做法使得页面可以被置换到磁盘中,并在必要时再取回。(这也就意味着可以存在超过物理内存所能容纳的数量的内存页面,这正是因为置换功能在起作用)。如果地址只能指向一个物理字节数,那么内存就无法来回置换。

这个通过踏遍页面表中的条目(称为“页面漫步”,page walking)来解析地址的过程颇为费时。在虚拟化环境下,页面漫步尤其复杂。管理程序必须在几个点上中断“漫步”过程并追踪单独的一系列所谓的“影子页面”( shadow pages),这样它就能够准确而快速地将虚拟机的理想内存位置映射到管理程序能够检索的位置上。在某些情况下,管理地址解析的费用可占到管理程序经常性支出的50%。

为了降低这一经常性支出,AMD虚拟化推出了快速虚拟化索引(RVI)技术,又称为嵌套分页表(NPT,nested page table),这是一个在页面漫步过程中访问的含有虚拟机到物理字节地址的映射的表。通过将NPT添加到页面漫步中,AMD虚拟化消除了 管理程序使用影子页面来管理虚拟机到物理地址的解析这一要求。这样一来,地址通常可以更快地解析。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章