在SPDK中使能E810网卡ADQ 特性

最近Intel发布了最新的100Gbps的以太网网卡控制器E810, 这款新的网卡不仅支持两种不同协议的RDMA 协议(iWARP 和RoCE v2),并且针对基于TCP/IP协议的应用(包括各种使用网络的应用)给出了基于ADQ(Application Device Queues)特性的性能改善方案,可用于改善网络应用的性能(诸如平均或者长尾延迟,以及throughput等)。在这篇文章中我们将会简要介绍如何在SPDK 中使能ADQ特性,以便于改善TCP/IP存储应用的性能。

ADQ简介

Intel 网卡中的ADQ特性是一种智能的系统级方法,旨在提高网络I/O性能。ADQ特性的目标是确保高优先级应用程序具有可预期的高性能,并显著降低抖动。ADQ的核心技术是将隔离的硬件网卡队列供某些应用程序进行专有使用。并且希望这些硬件网卡队列可以最佳地连接到所需应用程序中的不同线程。显而易见, 这种方法可以防止专有程序的网络流量与其他应用程序竞争,并且该应用程序的性能(例如,延迟)可以变得可预测。此外开启ADQ特性以后,我们仍然可以对专有应用程序在队列上提供QoS控制。

图1 Without ADQ那部分的图,给出了不使用ADQ的例子(也就是正常网卡的包处理)。如果把图中不同颜色的汽车看成不同的应用,不同的车道看成不同的网卡队列,我们可以看到同一个网卡队列上可以同时处理不同应用的网络包。这样的处理方法是通用的,但是不利于某些专有应用的QoS  控制。图1中使用了ADQ以后,我们可以看到某些网络队列可以直接分配给某些专有应用,于是这些应用的网络包可以在特定分配的队列上被处理,和其他应用程序隔离,继而可以进行后续的QoS控制。

图1 ADQ 特性的开启以及关闭

总结一下ADQ隔离队列的思想,和DPDK/SPDK PMD的思想有些相似。基于DPDK 的application可以去操纵分配给这个应用的物理队列,这一点来讲和ADQ的思想是完全相同的。唯一的区别是目前DPDK 只工作在层3以下,所以工作在TCP/IP层的应用想要通过DPDK PMD驱动来享受到隔离队列的特性,必须使用基于DPDK的用户态TCP/IP栈。所以从这一点看来,ADQ的特性通用性更好一些,不需要应用强制使用用户态的解决方案。

另外我们可以看到AD

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值