本帖最后由 lvroubaozi 于 2018-4-2 17:52 编辑
数据中心必备技能-RDMA
现代数据中心,整体的性能越来越由少量任务的性能决定整体性能。如何理解? 随着我们的世界逐渐进行着数字化的升级,云服务商面临的挑战之一就是建立高性能的数据中心来处理需求逐渐增加的实时请求,尤其是手机APP数据需求的增加。为了面对这种需求的增加,IT组织形式已经渐渐发展为了分布式平台以及微微服务架构。这种架构使得响应时间更加的难以预测,结果就是整体响应时间最后是由个别任务的响应时间决定。 对于数据中心的快速响应需求不是最近才有的,这已经是OLTP(onlinetransaction processing)数据服务商关注了几十年的事情。OLTP性能一般由”南北数据流”决定,也就是客户机请求被服务器响应的时间决定。但是随着社交媒体以及移动apps的爆炸式发展,这种“南北数据流”逐渐被“东西数据流”取代,也就是数据中心之间的数据流。例如一个简单的搜索只会在客户和服务器之间产生很小的数量流量,但是为了响应这个简单的搜索,不同数据中心之间要进行大量的数据传输。
这种东西向的数据流一般与社交媒体以及移动app背后的关键广告业务模式相关,经常包含比如用户统计、浏览历史、兴趣、以及最近购买等,还有就是与此相关的实时广告拍卖,广告商通过这种方式将信息推送给潜在客户。这一模式大家最熟悉的莫过于百度的精准定位广告业务。 为了管理这些负载的任务,云服务商以及网页服务商普遍采用了微服务架构,在这种架构中,每种服务平台处理特定的任务,最终的用户得到的响应其实是这些微服务平台联合响应的结果,如果某一个服务器响应失败的话,只需要将与此相关的请求发送给另一台与此相同的微服务器即可。.这种微服务平台架构的结果就是数据中心之间产生了大量的数据传输任务。同时也意味着在响应客户请求之前,成千上万条任务已经被执行。这样的话,最慢的那条响应就最终决定了最后整体的响应时间。 这个问题最终使得想要得到更高的响应速度,必须采用以硬件加速为基础的RDMA(RemoteDirect Memory Access)技术,这个技术通过RoCE协议部署与网络上,降低了网络传输的平均延迟以及最低延迟。 微软云服务器采用RDMA 微软在各大云服务商中最早意识到了RDMA 在数据中心的重要性。Windows Server 2012就可以用于跑RDMA,此后这种方法也被部署在微软的Azure 云中,提供了相当于TCP/IP协议两倍的性能。 下面这个测试中,我们使用微软基于RDMA的S2D文件系统去比较TCP/IP和RDMA的的性能。
可以看出TCP/IP平均延迟会比RoCE高出45%。 建立下一代用于分析海量数据的数据中心需要更高级的架构,为了能够提供流畅的响应,高速网络是必须的,与传统TCP/IP 相比,基于RDMA的网络比如RoCE已经被证明能够提供更好的性能,这将帮助云服务提供商以及网页服务商能够提供更好的服务。
|