天天看点

《数据中心设计与运营实战》——2.8 长尾容忍

本节书摘来自异步社区《数据中心设计与运营实战》一书中的第2章,第2.8节,作者: 【美】luiz andré barroso , 【美】jimmy clidaras , 【瑞士】urs hölzle 更多章节内容可以访问云栖社区“异步社区”公众号查看。

本章开始时曾描述过大型软件系统为实现高性能及高可用性所采用的一些通用技术。随着系统扩展以支持更强大的在线网页服务,我们发现这样的技术已不足以在可接受的长尾水平上提供广泛的服务响应(长尾指的是由运行最慢的分布式节点所导致的整个任务无法按计划结束)。dean和barroso 【34】认为,在大规模系统中杜绝造成性能变化的所有可能来源,就跟在一个大的容错系统内使所有组件无故障运行一样不切实际。

《数据中心设计与运营实战》——2.8 长尾容忍

假设一个系统中的每个服务器响应通常在10ms内,但计算到99%时的那个任务所在的节点长尾到1s。如果某个用户的请求在这样的一台服务器上处理,100个用户请求里面就会有一个慢(假设1s)。图2.3显示了在这种假设情景下服务级延迟是如何受到延时离散值的中值影响的。如果用户的请求需要100台这样服务器的并行响应,那么63%的用户请求将需要超过1s(图中的“x”标记)。即使服务里10000个请求中只有1个在单台服务器上有超过1s的延时,那么使用2000台这样服务器的服务会有五分之一的用户请求发生超过1s的延迟(图中标记为“o”)。

dean和barroso展示了一些编程技术的例子,这些技术既能容忍延迟变化,同时又能在服务层实现尽可能短的长尾。dean和barroso建议的技术经常利用为容错而预备的多副本,因此只需要很小的代价就能在现有系统上实现。他们预测,随着我们建立的在线web服务规模更加庞大,在未来十年,长尾容忍技术会变得更加重要。

继续阅读