返回博客

云服务器基准测试:云计算业内人士指南

云服务器基准测试:云计算业内人士指南

许多新客户在开始使用 CloudSigma 时都想测试其性能;他们通常希望在云服务器和他们自己的基础设施之间进行性能基准测试,这很合理。仅按资源进行直接的价格对比并不能说明全部问题;真正重要的是最终结果,即完成一项特定的计算任务需要花费多少成本?

对于任何给定的需求,在不同的云之间,实现该需求所需的资源数量可能会有很大差异。这意味着仅仅比较价格是行不通的。反过来说,孤立地比较性能也好不到哪里去。有意义的比较需要将价格和性能结合起来,以计算出每个计算单位的某种成本衡量标准。在这篇博文中,我将分享一些关于对我们的云服务器和其他云服务器进行基准测试的想法。我还将提供一些获取有用结果的技巧以及它们的真正含义。

注意事项

首先要说明的是,我个人对一般的基准测试持相当怀疑的态度。它很少能真正反映实际使用情况。简而言之,没有什么能真正替代在平台上运行您打算使用的实际应用程序。如果您能在时间成本合理的情况下做到这一点,那么这种实践是无可替代的。

另一个因素是云服务商的繁忙程度。您可能会对云服务器进行基准测试并获得极佳的结果。然而,这可能在很大程度上归因于该特定服务商的使用率(或缺乏使用)。这可能不是一个积极的信号。它可能反映了运营困难、客户流失、过去的可用性和可靠性问题等。因此,在解读其基准测试结果时,您应该始终调查该云服务商过去的停机事件和其他潜在问题。

作为最后的注意事项,性能并不是您应该考虑的唯一因素。通常,较低的性能可能反映了其底层更健壮(且冗余)的硬件架构。因此,非常清楚地了解云是构建在什么基础设施之上的始终很重要。这样,您就可以公平地比较结果,从而做出有意义的购买决策。

定义问题

在本文的后面部分,我将阐述性能的各个方面,以及如何最好地解读这些结果。然而,在进行任何基准测试之前,重要的是要描述您希望在云中进行的计算类型;这将决定不同性能指标的相对重要性。例如,如果您打算部署一个数据库服务器,并且它将处于重度读取访问但轻度写入访问的状态,那么您应该关注云中的磁盘性能,尤其是非顺序读取访问。

因此,在开始任何云服务器基准测试之前,实际上要明确您认为什么样的性能才算作是云端的良好性能。您应该确定哪些方面是关键的,并且对您计算的实际性能产生不成比例的影响。一旦您对此有了清晰的认识,您就可以开始考虑进行基准测试了。

计算性能

当我们审视原始计算性能时,我们指的是 CPU 和 RAM。在纯计算层面上,不同云之间的性能差异实际上并没有那么大。然而,有一些因素导致了真正的差异。

到目前为止,影响云中计算性能的最大因素是资源争用。公共云是多租户环境。RAM 和存储实际上无法超配(尽管它们可以被超卖),但 CPU 可以而且确实被超配了。争用程度差异很大,但实质上,公共云服务商能够以超过 100% 的比例销售物理主机的 CPU 容量。

一些最大的厂商使用的 CPU 超配比超过三倍。这意味着在同一台物理机上所有虚拟服务器的总 ‘已售’ CPU 容量可能是其实际 CPU 容量的三倍。他们这样做是因为大多数虚拟服务器在大部分时间里对所分配 CPU 的利用率都远未达到 100%。尽管如此,超配比仍将直接影响云服务器的性能基准测试和实际使用。如果超配比例过高(即超过 200% 的 CPU 分配),云服务器的性能将显著下降。

简单来说,如果任何物理机上的负载达到每核心 1 以上,计算任务就会排队,该虚拟机完成工作所需的时间就会变长。鉴于大多数云服务都是按容量/小时收费的,这会对该云服务的客户产生直接的成本影响。

影响计算性能的另一个重要因素是虚拟机可以访问的 CPU 核心数。这并非对所有应用程序都是一个因素,但许多现代应用程序确实支持多线程。实际上,这意味着应用程序和/或操作系统能够将计算任务分配到多个核心上。提高计算性能的一个绝佳建议是将应用程序可以支持的线程数(即核心数)与虚拟机可以访问的核心数相匹配。

不幸的是,这在许多公共云中是无法实现的。这是因为它们的虚拟化平台不支持 CPU 核心级别的虚拟化。换句话说,每个核心在同一时间只能由一台虚拟机使用。在确实支持 CPU 核心虚拟化的云中,您应该尝试在保持总 CPU 大小不变的情况下,改变该机器的核心数量。

例如,如果您有一台 2GHz 的机器,您可以观察将使用的核心数从两个翻倍到四个会如何影响您的基准测试。通过这样做,在该虚拟机上运行的应用程序将能够同时通过四个核心执行任务。在我们的案例中,您可以通过 Web 控制台服务器详情弹窗上的 ‘高级’ 选项卡来设置虚拟机使用的核心数。只需记住,在手动覆盖正在使用的核心数之前,务必先检查云厂商的标准核心大小。在我们的案例中,它是每核心 2.2GHz,但不同云厂商之间会有所不同。

我建议使用 考虑使用 POV-RAY, CoreMark, DhrystoneWhetstone 来对云服务器性能进行基准测试。

存储:真正的云服务器性能基准

所有性能都受限于产生瓶颈的最薄弱环节。目前,在 CPU 和内存使用方面的虚拟化领域,技术已经取得了显著进步。例如,单台物理机可以进行虚拟化并拥有多个云服务器,而对总聚合性能的损失极小。遗憾的是,在存储方面,仍有很大的进步空间。最终结果是,在大多数情况下,云中虚拟服务器的性能是由该云的存储解决方案性能决定的。

简而言之,存储是目前云中大多数计算任务性能的限制因素。无论 pov-ray 和其他基准测试对纯计算任务产生什么结果,现实情况是,虚拟服务器向物理存储磁盘检索和写入数据的速度将决定当前云服务器的实际性能。

考虑到这一点,云端性能的真正差异(即使在计算任务方面)往往源于存储性能的差异。正如本文前面所提到的,根据计算任务的不同,客户的需求也大不相同。在存储方面尤其如此。您是需要对大型顺序数据块(如流媒体)进行快速读取访问,还是需要对零散的小块信息(例如在大型数据库中)进行快速读取访问?您是否需要为周期性大爆发的快速变化数据维持高强度的写入访问?场景有很多种,每种场景在同一平台上的表现都会有所不同。

从根本上说,性能的差异归结为架构。这些架构上的差异通常源于数据存储的健壮性、冗余度以及由此产生的数据发生不可挽回丢失的可能性。从高层次来看,云要么采用集中式数据解决方案,其形式为 存储区域网络 (SAN) ,要么采用更分散的本地存储解决方案。在这些方案中,存储位于每个单独的物理机器上。

优秀的 SAN 本身就内置了高度的冗余。然而,由于数据需要从 SAN 通过网络发送到虚拟机’的 CPU 和内存中进行计算任务,性能会受到影响。因此,与具有本地分布式存储解决方案的云相比,基于 SAN 的云在同等条件下的性能往往较低。SAN 的另一个缺点是它代表了一个非常大的单点故障。SAN 非常可靠。如果它们真的发生严重故障(确实发生过),那么您可能会面临非常严重的停机和数据损坏。

大多数使用 SAN 的云厂商出于成本原因,并没有采用企业环境中使用的那种完全冗余的故障转移解决方案。重要的是要认识到并非每个 SAN 都是一样的,并了解云厂商在其 SAN 中采用了何种级别的冗余。

基于本地存储的云往往具有良好的磁盘性能。然而,它们通常只提供非持久形式的本地存储。这与持久存储相比并不公平。临时存储不需要像永久存储那样具备抗故障能力。为了获得有意义的结果,将持久存储与持久存储进行比较总是很重要的。

在查看具有分布式本地存储解决方案的云时,您还需要了解它们具有什么冗余。硬盘驱动器的故障率很高,因此存储方法至关重要。大多数厂商使用某种形式的 RAID ,但安全级别大不相同。在低端,您有 RAID1,其中两块磁盘基本上互为镜像。这通常具有良好的性能。但是,当一个磁盘发生故障时,在更换的磁盘从旧磁盘复制完所有数据之前,如果第二个(高负载)磁盘也发生故障,数据将面临完全丢失的风险。此外,在重建 RAID1 阵列期间,磁盘性能可能会比平时低得多。

因此,许多厂商使用 RAID5(可容忍一个磁盘故障)或 RAID6(可容忍两个磁盘故障)。RAID6 提供了迄今为止最安全的本地存储解决方案,但对性能有很大影响。我们的方法是使用 RAID6,并将其与顶级的硬件 RAID 控制卡相结合。它们拥有大容量内存缓存,并有电池备用。我们使用的 RAID 控制卡实际上比整个磁盘阵列还要贵得多。因此,我们能够提供与弹性低得多的配置相媲美的性能,同时仍能提供 RAID6 存储的巨大安全保障。了解更多关于我们的 云基础设施 配置,我们对此非常公开。

我建议使用 IOzoneBonnie++ 来进行磁盘性能基准测试。

因此,在解读存储基准测试结果时,请确保您还掌握了以下信息:

  • 云使用的是什么存储架构(本地、SAN 还是其他)?
  • 数据有哪些故障转移和冗余措施?
  • 我正在进行基准测试的存储是临时的还是持久的?

将这三个问题的答案与基准测试结果结合起来,您就能对实际的存储性能有一个相当清晰的了解。

网络

与计算和磁盘性能相比,网络性能的确定和测量要简单得多。网络性能有两个关键方面:延迟和带宽。

根据您的需求,云服务商所使用的网络延迟可能重要,也可能不重要。如果您使用云主要是为了进行高度独立的运行,那么延迟不太可能成为首要考虑的因素。然而,如果您运行的是与云外世界进行交互的实时应用程序,那么延迟将是决定性能的关键因素。

通常,绝大部分延迟是由纯粹的物理距离造成的。例如,伦敦和旧金山之间的大部分延迟实际上是光传播这段距离所需的时间。延迟的差异取决于所经路线的不同效率。这就是不同云之间的差异所在。路线的效率直接取决于与该云有直接连接的网络提供商。这可以通过向他们获取 IP 连接或通过对等互联(peering)来实现。在查看延迟时,您只需 ping 您的云服务器即可确定其性能。然而,确定实际最终用户与您的云服务器之间的性能至关重要。

如果您的绝大多数用户位于某一特定地理区域,或者主要从您公司的总部进行访问,那么测试这些位置的性能就显得尤为重要。诸如 Pingdom 之类的商业服务提供了一种经济高效的方法,可以同时测定全球大量常用地点的延迟。

您的云服务器所能达到的实际 带宽 也同样非常重要。与传统的托管解决方案不同,云厂商往往根据数据传输的总量来收费。换句话说,它不像按每兆比特(Mbit)计费那样与时间相关,后者可以为您提供 24/7 全天候的固定连接水平。尽管如此,许多云厂商仍会‘限制’任何虚拟服务器的带宽。在您遇到该瓶颈之前,用户是察觉不到这一点的。如果您的带宽使用呈现出明显的峰值特征,这可能是一个需要考虑的重要性能因素。

要测试云服务器的实际带宽,重要的是尝试从一个在传输端并未限制传输速率的源下载数据到该云服务器。我经常发现,确定可用速度的一个极佳方法是从大型厂商下载一个大文件,例如 MicrosoftUbuntu ,或者更好的是通过给操作系统打补丁。这往往会同时从不同位置下载许多不同的文件。它能让您对连接速度有一个非常直观的感受。

我经常从其官方网站下载一个 Fedora live CD 作为标准测试,但您至少应该尝试一些不同的文件和位置。如果您坚持要拥有自己极快的企业网络,那么您可能希望将文件从云服务器下载到您自己的网络中进行测试。

现在将价格因素重新纳入考量以权衡结果

通过上述方法,您应该能够很好地了解各个云服务器厂商的性能表现。此外,您应该知道哪些方面最符合您的特定需求,从而重点关注这些方面。

最后一步是将价格维度添加到基准测试结果中。这没有固定的公式。它取决于上述各个方面的相对性能,且这些由您来决定。如果某个云服务的性能提高了 40%(由您决定),但价格仅贵了 30%,那么它显然很有吸引力。同样,如果您有很大的带宽需求,较低的计算性能可能会被具有竞争力的流量传输定价方案所弥补。做出正确决策的关键是综合考虑所有这些不同的因素。

最后,基准测试应该成为确定哪些云服务器适合您的更大流程的一部分。这应该包括其他方面。例如,这些可以包括服务等级协议、数据/厂商锁定考量、物理位置和法律管辖权。通过综合所有这些方面,您将能够做出正确的云计算供应商选择。

author

Patrick Baillie

作者 · CloudSigma

Preslav Dobrev 是 CloudSigma 的创意设计师,专注于通过传统和创新营销渠道打造一致的企业形象。他擅长将艺术愿景与战略营销相融合,创造具有影响力的品牌叙事。

评论

暂无评论。发表第一条评论吧。