近期,Intel公司对800系列的100G以太网产品引入了一项新的应用程序队列(ADQ)技术,以实现了对通过Fabric TCP传输协议的NVMe支持。
以800系列为基础的100G以太网网卡在引入ADQ技术后,能够充分发挥基于TCP协议的NVMe访问特性,在延时上可和市场上的RDMA功能网卡相互媲美。能够提高应用程序响应时间的可预测性和可扩展性。目前国内外产销规模领先的专业以太网卡解决方案提供商LR-LINK联瑞成功量产的双光口100G以太网卡(品牌型号:LRES1014PF-2QSFP28)即采用了英特尔Ethernet 800系列网络控制器,为关键应用建立数据传输通道。
可预测性是关键
ADQ是一种旨在通过改善吞吐量和延迟来帮助解决网络流量难题的开发技术,同时能够提高应用程序响应时间的可预测性。据系统测试显示,与没有ADQ技术相比,在启用ADQ后,系统可预测性提升超过50%,应用延迟降低超过45%,吞吐量提升超过30%。这都得益于ADQ在为核心业务队列直达目标的通道或队列,使其不需要于其他的应用程序共享或者抢占传输通道。这样的专业术语讲述可能很多人感觉一头雾水,那我们现在用举例子的方式进行重新解读。
首先,当我们在衡量数据中心性能时,大多数人首先考虑的是网络吞吐量和延迟之类的指标--即每秒可以处理多少的数据,一个操作需要多长时间反应? 这虽然是重要指标,但代表的是系统的平均性能。
可预测性是说一个操作通常只需要1毫秒响应,但有时候可能需要10毫秒才能响应,这10毫秒就是尾部延迟。这是针对某一次延迟来说,而对于系统来说,最重要的是判断尾部延迟发生的频率是多少?如果说一个操作中有百万分之一是(尾部)延迟的,即使扩展到多个系统,那么也是高度可预测的。但是,如果每100个操作中就有一个尾部延迟响应,虽然对于单个系统来说可以接受,但当扩展到多个系统时,可预测性就不是很好了。
(图片来自Intel网站)
这就比如假设你驱车从高速路去机场,通常来说要花费二十分钟,但有时需要四十分钟。那么,你会什么时候出发?保险起见,你总是会四十分钟。如果这时候要是有一条通往机场的快速专用道,二十分钟就能到达,而且你始终都能保持这个速度!这就是ADQ的本质——在高速公路上为最核心的应用程序提供快速专用通道。
ADQ快速通道 保证以太网顺畅运行
数据中心采用并行计算,那么一个作业就可能会被拆分成多个指令,并分配给几十台或几百台服务器去完成。那么在所有的指令中响应最慢的那部分指令,完成并返回结果后这个作业才算结束。这也就是说服务器越多,结果返回越慢的可能性越高,从而导致降低整个作业的完成速度。那么这个时候服务器之间的网络和网络软件在影响数据传输的时间上起着重要的作用。
英特尔800系列适配器配备了2048个专用硬件队列,可以配置为专用的ADQs或用作标准流量通道。通过系统管理员自定义为应用程序分配队列,从而为更高优先级的应用程序分配更多队列,以确保其高性能的可预测性。换句话说,ADQ允许核心应用保留通道或队列,直达数据中心目标硬件设备,而无需与其他应用程序共享或抢占传输通道(类似机场专用通道,VIP客人可以通过专用通道快速到达目的地,避免和普通客人一起抢占客人通道)。
目前Intel已经将关键补丁更新到Linux内核以启用ADQ,目前Linux 4.19及更高版本中已包含这一补丁。标准的Linux操作系统工具就可配置ADQ,比如说iproute2、流量控制(TC)、网络端口设置(ethtool)和控制组(cgroup)等。
ADQ开辟高速公路的快速通道,为企业关键应用并使它们远离交通堵塞。在应用程序性能方面可以获得更大的可预测性,还可以降低延迟并提高整体性能。