35. Warehouse-Scale Computers

仓库级计算机
AP SHANTHI博士

 

本模块的目标是讨论仓库级计算机的显着特征,并了解此处如何利用请求级并行性和数据级并行性。

 

应用程序中基本上存在两种类型的并行性。它们是 – 数据级并行 (DLP),因为有许多数据项可以并行操作,而任务级并行 (TLP) 是因为创建的工作任务可以独立和并行操作而出现。计算机系统以四种主要方式利用应用程序展示的 DLP 和 TLP。指令级并行 (ILP) 使用具有流水线、动态调度和推测执行等思想的编译器的帮助,在适度的级别利用 DLP。矢量架构和 GPU 利用 DLP。线程级并行在允许线程间交互的紧密耦合硬件模型中利用 DLP 或 TLP。请求级并行 (RPL) 利用程序员或操作系统指定的大量解耦任务之间的并行性。

 

仓库级计算机 (WSC) 构成了人们用于搜索、社交网络、在线地图、视频共享、在线购物、电子邮件、云计算等的 Internet 服务的基础。 Internet 服务的日益普及使得创建WSC 以跟上公众日益增长的需求。尽管 WSC 看起来是大型数据中心,但它们的架构和操作与数据中心不同。WSC 是超级计算机的后代。今天的 WSC 就像一台巨大的机器。WSC 的主要部分是带有电气和冷却基础设施、网络设备和服务器的建筑物,其中大约有 50000 到 100000 个。建造这样一个基础设施的成本约为 1.5 亿美元。

 

WSC 与服务器共享许多目标和要求。他们是:

 

性价比:由于涉及的规模,性价比变得非常关键。即使是小额储蓄也可能是一大笔钱。

 

能源效率:在配电上投入了大量资金用于消费以及消除冷却系统产生的热量)。因此,每焦耳完成的工作量对于 WSC 和服务器都至关重要,因为为计算机仓库构建电力和机械基础设施以及为服务器供电的每月水电费的成本很高。如果服务器不节能,它们将增加 (1) 电力成本,(2) 提供电力的基础设施成本,(3) 冷却服务器的基础设施成本。因此,我们需要优化每焦耳的计算。

 

通过冗余实现可靠性:WSC 中的硬件和软件必须共同提供至少 99.99% 的可用性,而单个服务器的可靠性要低得多。冗余是 WSC 和服务器可靠性的关键。虽然服务器以更高的成本使用更多的硬件来提供高可用性,但 WSC 架构师依赖于通过低成本网络连接的多个经济高效的服务器和由软件管理的冗余。可能需要多个 WSC 来处理整个 WSC 中的故障。多个 WSC 还可以减少广泛部署的服务的延迟。

 

网络 I/O:需要网络来与公众交互并保持多个 WSC 之间的数据一致。

 

交互式和批处理工作负载:搜索和社交网络是交互式的,需要快速响应时间。同时,索引、大数据分析等也会产生大量的批处理工作负载。

 

WSC 还具有不与服务器共享的特性。他们是:

 

充足的并行性:在服务器的情况下,我们需要担心应用程序中可用的并行性来证明并行硬件的数量是合理的。WSC 的情况并非如此。大多数作业是完全独立的,并利用“请求级并行性”。交互式 Internet 服务应用程序,称为软件即服务 (SaaS) 工作负载,由数百万用户的独立请求组成。其次,利用数据级并行性,可以在独立的块中处理许多批处理应用程序的数据。

 

运营成本很重要:服务器架构师通常会在成本预算内设计系统以获得最佳性能。只要保持冷却要求,电源问题就不会太多。运营成本被忽略。然而,WSC 的使用寿命更长,而且建筑、电力和冷却成本非常高。因此,运营成本不容忽视。所有这些加起来在 10 年内占 WSC 成本的 30% 以上。在设计系统时,功耗是主要而非次要的约束。

 

规模及其机会和问题:由于 WSC 在内部如此庞大,即使 WSC 不多,您也可以获得批量折扣和规模经济。另一方面,定制硬件可能非常昂贵,尤其是在只生产少量产品的情况下。规模经济导致了云计算,因为 WSC 的单位成本较低导致租金较低。天平的另一面是失败。即使服务器的平均无故障时间 (MTTF) 为 25 年,WSC 架构师也应该针对每天五次服务器故障进行设计。同样,如果每台服务器有 4 个磁盘,并且它们的年故障率为 4%,那么考虑 50,000 台服务器,每小时就会有一个磁盘故障。

 

我们可以将独立计算机、标准局域网和交换机组成的计算机集群视为WSC的前身。WSC 是集群的逻辑扩展,因为我们从数百台计算机转移到数万台计算机。集群具有更高性能的处理器和网络,因为使用此类集群的应用程序更加相互依赖并且通信更加频繁。集群强调线程级并行,而 WSC 强调请求级并行。

 

与数据中心相比,WSC 的硬件和底层软件非常相似。数据中心将不同的机器和软件整合到一个位置。数据中心强调虚拟机和硬件异构性,以便为不同的客户提供服务。他们也没有获得 WSC 的规模优势。典型的数据中心在架构上或操作上与 WSC 的挑战和机遇几乎没有什么相似之处。

 

WSC 的编程模型和工作负载:我们已经看到 WSC 必须同时处理交互式工作负载和离线批处理。典型的批处理作业包括将视频转换为新格式或从网络爬行中创建搜索索引。

 

当今 WSC 中最流行的批处理框架是 MapReduce 及其开源孪生 Hadoop。MapReduce是一种基于java的分布式计算处理技术和程序模型。MapReduce 算法包含两个重要的任务,即 Map 和 Reduce。Map 获取一组数据并将其转换为另一组数据,其中单个元素被分解为元组(键/值对)。其次,reduce 任务将映射的输出作为输入,并将这些数据元组组合成更小的元组集。正如 MapReduce 名称的顺序所暗示的那样,reduce 任务总是在 map 作业之后执行。

 

The major advantage of MapReduce is that it is easy to scale data processing over multiple computing nodes. Under the MapReduce model, the data processing primitives are called mappers and reducers. Decomposing a data processing application into mappers and reducers is sometimes nontrivial. But, once we write an application in the MapReduce form, scaling the application to run over hundreds, thousands, or even tens of thousands of machines in a cluster is merely a configuration change. This simple scalability is what has attracted many programmers to use the MapReduce model.

 

例如,我们可以看一个 MapReduce 程序,它计算大量文档中每个英语单词的出现次数。该程序的简化版本仅显示内部循环并假设在文档中找到的所有英语单词仅出现一次,如下所示:

 

– 映射(字符串键,字符串值):

 

// 键:文档名称

 

// value: 文档中每个单词 w 的内容值

 

EmitIntermediate(w,”1”); // 生成所有单词的列表

 

– 减少(字符串键,迭代器值):

 

// 关键字:一个词

 

// 值:计数列表

 

整数结果 = 0;

 

对于值中的每个 v:

 

结果 += ParseInt(v); // 从键值对中获取整数

 

发出(AsString(结果));

 

MapReduce 的一些附加特性值得一提如下:

· MapReduce 可以被认为是SIMD 的泛化,只不过我们传递了一个应用于不同数据的函数,然后是一个用于归约的函数。

 

· 为了适应数千台计算机的性能差异,MapReduce 调度程序为未完成的作业执行备份。也就是说,如果一个慢速节点还没有完成执行,它会再次分配给其他某个节点,并从最先完成的节点获取结果。

 

· 由于故障在 WSC 中很常见,因此通过使用跨不同服务器的数据副本、检测故障线程并重新启动它们来处理故障。

 

· MapReduce 依靠谷歌文件系统(GFS)向任何计算机提供文件,从而可以在任何地方安排MapReduce 任务。

 

· WSC 存储软件通常使用宽松的一致性,而不是遵循传统数据库系统的所有 ACID 要求。也就是说,数据的多个副本最终一致很重要,但它们不必总是一致。

 

· WSC 的工作负载需求经常变化很大,硬件和软件应注意变化的负载。对于 WSC 中的服务器来说,重要的是要表现良好,而在高峰期做的却很少,因为它们很少在高峰期运行。

 

· 值得注意的是,Google 内部对 MapReduce 的使用每年都在增长——在很短的时间内,MapReduce 作业的数量增加了 100 倍,处理的数据增加了 100 倍,每个作业的服务器数量增加了3 倍。

 

Computer Architecture of WSCs: Networks are the connecting tissue that binds all the tens of thousands of servers in a WSC. WSCs often use a hierarchy of networks for interconnection. Servers are typically placed in 19-inch (48.3-cm) racks. Servers are measured in the number of rack units (U) that they occupy in the rack (1U, 2U, etc.). One U is 1.75 inches (4.45 cm) high and that is the minimum space a server can occupy. A typical rack offers between 42 and 48 U. For example, each 19” rack holds 48 1U servers connected to a rack switch. The most popular switch for a rack is a 48-port Ethernet switch. The bandwidth within the rack is the same for each server.

 

机架交换机上行连接到更高层次的交换机。上行链路具有 48 / n 倍的低带宽,其中 n = # 上行链路端口。内部带宽与上行带宽之比称为超额订阅因子。当出现大量超额订阅时,我们必须意识到将发送方和接收方放置在不同机架中时的性能后果。目标是最大化通信相对于机架的局部性。阵列交换机连接30个机架的阵列,

 

这比机架交换机贵十倍以上(每个端口)。显示服务器、机架和阵列交换机的层次结构如图 39.1 所示。阵列交换机的带宽应该是机架交换机的 10 倍,n端口交换机的成本随着n 2 的增长而增长。网络交换机是内容可寻址存储器芯片和 FPGA 的主要用户。

 

就存储而言,最简单的解决方案是使用服务器内部的磁盘,并使用以太网连接访问远程服务器磁盘上的信息。另一种选择是通过 Infiniband 等存储网络使用网络附加存储 (NAS)。这更昂贵,但支持包括 RAID 在内的多种功能,以提高可靠性。WSC 通常依赖于本地磁盘并提供处理连接性和可靠性的存储软件。例如,谷歌文件系统(GFS)使用本地磁盘并维护至少三个副本以提供可靠性。


 

图 39.2 显示了 WSC 内部存储器层次结构的延迟、带宽和容量的典型值。服务器可以使用 NUMA 风格的接口访问其他服务器上的 DRAM 和磁盘。


 

Physical Infrastructure and Costs of WSC: The first step to build a WSC is to build a warehouse. While choosing the location of WSC, we have to consider proximity to Internet backbones, low cost of electricity, low property tax rates and low risks from natural disasters like earthquakes, floods, and hurricanes.

 

WSC 中配电和冷却的基础设施成本构成了主要部分。图 39.3 显示了 WSC 内的配电。从高压线到服务器的过程中大约会发生五个步骤和四个电压变化。变电站从超高压线路切换到中压线路,效率约为 99.7%。不间断电源 (UPS) 用于电源调节,在发电机启动和上线时保持电力负载,并在从发电机切换回电力设施时保持电力负载,其效率约为 94% . WSC UPS 占所有 IT 设备成本的 7% 至 12%。使用的变压器的效率约为 98%,连接器,断路器和电线的效率约为 99%。综合起来,从高压电源到服务器的效率约为99.7% x 94% x 98% x 98% x 99% = 89%。


 

图 39.4 显示了 WSC 内的冷却基础设施。这里还有更多的改进空间。空调用于冷却服务器机房。服务器的冷空气温度介于 18⁰ C 和 22⁰ C 之间。图中显示了在整个系统中输送空气和水的大量风扇和水泵。为了提高能源效率,温度保持在较高水平(接近 22⁰ C)。此外,还可以使用冷却 塔。用空气蒸发水所能达到的最低温度称为“湿球温度”。


 

冷却系统还使用水(用于蒸发和溢出)。通常,一个 8 兆瓦的设施每天可能使用大约 70,000 到 200,000 加仑。相对电力成本明细如下:

 

– 冷却器:IT 设备使用的电力的 30-50%

 

– 空调:IT 功率的 10-20%,主要是风扇

 

衡量 WSC 的效率:评估数据中心或 WSC 效率的一种广泛使用的衡量标准是电源利用效率 (PEU)。

PUE = 总设施功率 / IT 设备功率

 

PUE必须大于1;值越大,WSC 的效率越低。典型值范围从 1.33 到 3.03,中值为 1.69。进行的实验表明,所有 WSC 的 Google 平均 PUE 为 1.12,Facebook Prineville WSC 为 1.07。

 

成本-性能比是衡量性能的最终标准。随着与数据的距离增加,带宽下降,延迟增加。虽然 WSC 的设计者关注带宽,但在 WSC 上开发应用程序的程序员也关心延迟,因为它是用户看到的。Bing 搜索引擎的分析表明,如果在响应中引入 200ms 的延迟,则用户的下一次点击将延迟 500ms。因此,较差的响应时间会放大用户的 非生产力。因此,要求很高百分比的请求低于阈值目标。此类阈值目标称为服务级别目标 (SLO) 或服务级别协议 (SLA)。例如,SLO 可能是 99% 的请求低于 100 毫秒。

 

考虑到大规模,我们还必须担心可靠性 (MTTF) 和可用性 (MTTF/MTTF+MTTR) 等因素。即使我们假设一台服务器的 MTTF 为 25 年,5 万台服务器每天也会导致 5 台服务器故障。同样,每年的磁盘故障率为2-10%,表示每小时都会有一个磁盘故障。

 

在 PUE 衡量 WSC 的效率的同时,我们还必须担心 IT 设备内部会发生什么。提供给服务器的电压必须进一步降压并分配给各种芯片,从而进一步降低效率。除了电源之外,整个服务器的目标应该是能源比例。也就是说,服务器应该与执行的工作量成比例地消耗能量。理想情况下,我们想要能源成比例的计算,但实际上,服务器不是能源成比例的。无负载的服务器会消耗大量功率。我们可以通过打开一些被大量使用的服务器来实现能源比例。

 

WSC 的成本:WSC 的设计者必须担心运营成本以及建造 WSC 的成本。因此,成本分为资本支出 (CAPEX) 和运营支出 (OPEX)。CAPEX 包括与建设 WSC 基础设施相关的所有成本。假设设施将使用 10 年,服务器部件将使用 3 年,网络部件将使用 4 年,则资本支出可以摊销为月度估算。OPEX 包括运营 WSC 的成本。例如,能源、故障、人员等的月度账单。

 

总而言之,我们已经在本模块中查看了 WSC 的要求和工作。仓库规模的计算机构成了互联网使用的基础,并且越来越受欢迎。它们与服务器有一些共同点,但在某些方面有所不同。要考虑的重要设计因素是性价比、能源效率、冗余可靠性、网络 I/O 以及交互式和批处理工作负载的处理。基础设施成本是 WSC 成本的重要组成部分,而电力利用效率是衡量效率的重要指标。

 

网页链接/支持材料

 

Computer Architecture – A Quantitative Approach,John L. Hennessy 和 David A. Patterson,第 5 版,Morgan Kaufmann,Elsevier,2011。