虚拟化性能分析 2010 年 11 月 Red Hat KVM 支持 SR-IOV 对虚拟化 环境中网络性能的影响 Steve Worley System x 性能分析与基准测试工作组 IBM 系统与科技部
Red Hat KVM 支持 SR-IOV 对虚拟化环境中网络性能的影响第 2 页 摘要 单根 I/O 虚拟化 (SR-IOV) 是一项能够提高虚拟化网络性能的技术 SR-IOV 定义了 PCI Express (PCIe) 规范套件的扩展, 允许多个客操作系统直接接入物理 I/O 资源的部分分区 本文开展的分析以 Standard Performance Evaluation Corporation 最新颁布的 旨在分析 SR-IOV 优势的全新虚拟化基准测试为基础 SPECvirt_sc2010 (SPECvirt) 是 SPEC 用于对虚拟化服务器整合中使用的数据中心服务器进行性能比较的第一个基准测试 这次分析使用的是基于 Red Hat Enterprise Linux 5.5 Kernel 的虚拟机 (KVM), 因为这个虚拟机支持 SR-IOV
Red Hat KVM 支持 SR-IOV 对虚拟化环境中网络性能的影响第 3 页 简介 随着服务器虚拟化与整合的深入, 网络很可能成为性能瓶颈 要想攻克这个瓶颈, 您可将 I/O 设备的系统管理程序模拟功能卸载到专业化硬件和设备驱动器上, 为此, 您可选择使用单根 I/O 虚拟化技术 单根 I/O 虚拟化 (SR-IOV) 是 Peripheral Component Interconnect Special Interest Group (PCI-SIG) 颁布的虚拟化 I/O 规范 PCI-SIG 共为虚拟化 I/O 颁布了三组规范 : 地址转换服务 (ATS): 这个规范提供一组面向 PCI Express 组件的事务, 以便这些组件交换并且使用转换好的地址来支持本机 I/O 虚拟化 单根 IOV: 这个规范可在只存在一个根联合体的现有 PCI Express 拓扑中提供本机 I/O 虚拟化功能 ( 如, 支持虚拟化技术的单个计算机 ) 多根 IOV: 这个规范以单根 IOV 规范为构建基础, 在多个根联合体共享一个 PCI Express 层级的拓扑中提供 I/O 虚拟化 ( 例如, 使用基于 PCI Express 交换机的拓扑将服务器刀片与 PCI Express 设备相连接的服务器刀片机箱 ) Red Hat/KVM 内核现已开始支持 SR-IOV 但尚且不为 VMware ESX 系统管理程序提供 SR- IOV 支持 您应该量化在 Red Hat/KVM 上面使用 SR-IOV 的优势 为此, 您可将 Standard Performance Evaluation Corporation (SPEC) 2010 年推出的 SPECvirt_sc2010 基准测试用作工作负载 SPECvirt_sc2010 工作负载 这个分析使用的工作负载是 SPECvirt_sc2010 虚拟化基准测试 有关 SPECvirt_sc2010 基准测试的更多信息, 请参见 :www.spec.org SPECvirt 基准测试是 SPEC 为了评估虚拟化服务器整合中所用的数据中心工作负载性能而推出的第一个基准测试 SPECvirt 测量所有组件的性能, 包括硬件 虚拟化平台 虚拟客操作系统和应用软件等 这个基准测试使用代表常被整合到虚拟化环境中的多个应用的多个工作负载 您可通过添加名为 节片 (tiles) 的虚拟机组来扩展工作负载规模, 直到总体吞吐量达到高峰为止 每个节片由六个不同的虚拟机组成 : Infraserver 运行面向 web 下载的文件下载目录, 运行 web 后端模拟程序 Webserver 运行 Web 工作负载 Mailserver 运行 Internet 消息访问协议 (IMAP) 工作负载 Appserver 运用应用服务器工作负载 Dbserver 作为应用服务器工作负载的后端运行数据库 Idleserver 运行轮询工作负载 由于每个节片都代表 6 个 VM, 因此, 运行 10 个节片的系统中将包含 60 个 VM
Red Hat KVM 支持 SR-IOV 对虚拟化环境中网络性能的影响第 4 页 测试台的配置 我们开展这次分析所用的测试台中包括用作被测系统 (SUT) 的 带有 MAX5 内存扩展单元的 IBM System x 3850 X5 服务器 我们只使用了 x3850 X5 提供的 2 个插槽 系统总共配置了 768GB 内存 ; 其中 512GB 安装在 x3850 X5 中,256GB 安装在 MAX5 内存扩展单元中 对于这次分析而言, 减少内存量可以取得相同结果 SUT 配置了 2 个 8 核 Intel Xeon X7560 (2.26GHz) 处理器及 1 个 4Gb QLogic QL2462 光纤通道主机总线适配器, 这个适配器通过 IBM System Storage DS4800 双磁盘控制器与 HDD 阵列相连接 我们使用的系统管理程序是带有 KVM 的 Red Hat Enterprise Linux 5.5 结果 有关配置单元的具体清单, 请参阅 IBM System x3690 X5 文章 (http://www.spec.org/virt_sc2010/results/res2010q3/virt_sc2010-20100727-00014- perf.html) 这篇文章中使用的客户端配置和软件堆栈与这次分析使用的被测系统完全相同 本次测试的结果在 SPECvirt 报告中以 SPECvirt_sc2010 指标 ( 得分 ) 和服务质量 (QoS) 呈现出来 SPECvirt_sc2010 分数是 综合分, 即每个工作负载 ( 邮件服务器 Web 服务器和应用服务器 ) 的规范化子分数的算术平均数 此外, 服务质量分数也是邮件服务器 Web 服务器和应用服务器这三个工作负载的综合平均数 例如, 对 Web 服务器来说,QoS 需求是以 Time_Good 和 Time_Tolerable 为评估标准的 Time_Good 等于 3 秒钟,Time_Tolerable 等于 5 秒钟 对于每个页面来说,95% 的页面请求都应该在 Time_Good 时间内返回,99% 的页面请求都应该在 Time_Toerable 时间内返回 我们对 CPU 利用率的测试是在 SPECvirt 运行时使用 mpstat 命令进行的, 指的是所有内核的平均利用率 表 1 显示了打开 SR-IOV 的 13 个节片 打开或关闭 SR- IOV 的 10 个节片 以及打开或关闭 SR- IOV 的 8 个节片的测试结果 配置 得分 QoS 总体 CPU 利用率 13 节片,SR-IOV 打开 1275 99.98 86.56 10 节片,SR-IOV 打开 982.1 100 68.24 10 节片,SR-IOV 关闭 892.6 85.23 82.48 8 节片,SR-IOV 打开 785.7 100 55.04 8 节片,SR-IOV 关闭 778 100 66.23 表 1 SR-IOV 测试数据 从表 1 我们看到, 在 SR-IOV 打开的情况下,13 节片配置所有内核的平均 CPU 利用率是 86.56%,QoS 是 99.98 如果在关闭 SR-IOV 的情况下运行 13 节片配置, 由于 CPU 利用率带 来瓶颈, 因此将无法完成运行 为了在关闭 SR-IOV 时开展有效的比较, 我们将节片数量减 少成 10 个 在未打开 SR-IOV 的情况下,10 节片配置的 QoS 得分是 85.23, 仍然未能满足 SPECvirt 要求 于是, 我们再次将节片数量减少成 8 个, 以便在打开 SR- IOV 的情况下取得 良好的 QoS 分数 在关闭 SR-IOV 的 8 节片配置中,CPU 利用率从 55.04% 一跃上升至 66.23%
Red Hat KVM 支持 SR-IOV 对虚拟化环境中网络性能的影响第 5 页 结论 本文开展的分析证明, 若与 Hat Enterprise Linux 5.5 KVM 一起使用,SR-IOV 将带来巨大优势 测试结果显示, 打开 SR-IOV 时, 系统支持的节片数量至少能够增加 30% 这是因为 CPU 利用率降低所致 由于 SR-IOV 能够将网络 I/O 处理任务从系统管理程序卸载到专业化硬件和设备驱动器上, 因此, 您可减少用于处理网络 I/O 的 CPU 循环数量, 将节省下来的 CPU 循环用于提高应用性能 有关 CPU 利用率的影响, 我们可从 8 节片配置的测试中看到 在关闭 SR-IOV 时,8 节片配置的 CPU 利用率理论上会增长 20%( 实际增长了 11%) 在关闭 SR-IOV 的情况下, 系统的平均 CPU 利用率越高, 运行配置对 QoS 的影响越大 经过测试, 我们发现当我们减少被测系统支持的节片数量时, 系统仍可满足 QoS 需求
Red Hat KVM 支持 SR-IOV 对虚拟化环境中网络性能的影响第 6 页 IBM 公司 2010 年版权所有 IBM Systems and Technology Group 3039 Cornwallis Road Research Triangle Park, NC 27709 本文 2010 年 11 月在美国制作保留所有权利 保修信息 : 如想索取现行产品保修的副本, 请致函 : Warranty Information, P.O. Box 12195, RTP, NC 27709, Attn: Dept. JDJA/B203 IBM 不对第三方产品或服务提供任何陈述或保证, 包括通过 ServerProven 或 ClusterProven 认证的产品或服务 IBM IBM 标识 System x 和 System Storage 是国际商用机器公司在美国及 / 或其他国家的商标或注册商标 如想查看 IBM 商标的完整列表, 请访问 : www.ibm.com/legal/copytrade.shtml Intel 和 Xeon 是英特尔公司的注册商标 Linux 是 Linus Torvalds 在美国及 / 或其他国家的注册商标 Microsoft 和 Windows 是微软公司在美国及 / 或其他国家的注册商标 Red Hat 是 Red Hat, Inc. 的商标 VMware 是 VMware, Inc. 的注册商标,VMmark 是商标 SPEC SPECweb 和 SPECvirt_sc2010 是标准性能评估机构 (SPEC) 的商标 其他公司 产品或服务名称是各自所有者的商标或服务标记 关于非 IBM 产品的信息, 获取自产品制造商或公开宣布的资源 对于这些非 IBM 产品,IBM 并未进行测试, 且并未验证其性能 兼容性或任何其他声明的准确性 如对非 IBM 产品的功能存在疑问, 请联系产品供应商 本文中的性能值均是使用业界标准或 IBM 基准测试方法在可控环境中测得, 可能与用户实现的实际吞吐量存在出入 用户能够实现的吞吐量取决于多个因素, 如用户作业流中的多程序数量 I/O 配置 存储器配置和处理的工作负载等 因此, 我们不保证每名用户都能获得本文阐述的性能优势 IBM 保留更改本文中产品规范或其他产品信息的权利, 恕不另行通知 本文提到的 IBM 产品或服务不代表 IBM 计划在其开展业务的所有国家都提供它们 IBM 按 原样 提供本文, 拒绝提供任何明示或暗含的保证, 包括适销性或者适用于某种特殊用途的保证 某些地区可能不允许您在特定情况下拒绝明示或暗含的保证, 因此, 本文对您可能并不适用