SPDK 应用编程框架

SPDK 应用编程框架 SPDK (Storage performance development kit, http://spdk.io)是由Intel发起、用于加速使用NVMe SSD作为后端存储的应用软件加速库。该软件库的核心是用户态、异步、轮询方式的NVMe驱动。较之内核(诸如Linux Kernel) 的NVMe驱动,它可以大幅度降低NVMe command的延迟 (Latency) ,同时提高单CPU核的IOPS,从而形成一套高性价比的解决方案,例如使用SPDK的vhost解决方案可... 继续阅读

无缝升级网卡?AVF可以!

AVF (Adaptive Virtual Function)是一个自适应的virtual function (以下简称VF), 其设计初衷是给虚机提供一个通用VF。这意味着只需要一个VF的驱动,不需要再随着网卡的更新换代来加载不同的驱动。AVF由基本的base features和可协商的advanced features两部分构成,其优点在于已存在的虚机镜像可以在不改变任何代码或者硬件的情况下跑在新的NIC上。英特尔计划从Intel Ethernet 700系列开始支持AVF。 例如,如果现在... 继续阅读

DPDK Eventdev 库使用说明

简介 本文简要描述了DPDK Eventdev库,介绍了Eventdev库的功能设计目的,以及怎样通过Eventdev框架更好地实现和优化应用。 Eventdev库允许DPDK应用使用事件驱动的工作运行模式。事件驱动中,系统要完成的工作用一种被分割的单元来表示,这种被分割的单元即为事件。每一个事件代表一个单独的任务或个体,这种任务或个体可以使用Eventdev库达到被调度的目的。换言之,即可以将一个事件看作一个单独的网络报文;这种用法在DPDK的事件驱动编程中非常常见。 类似于DPDK的ethd... 继续阅读

DPDK数据包捕获框架

本文介绍了如何使用 DPDK 数据包捕获框架在DPDK端口捕获数据包,以供那些希望更多了解其特性或能够监控DPDK控制设备的流量的用户作为参考。 DPDK数据包捕获框架由DPDK pdump库和DPDK pdump工具组成,在DPDK v16.07中被初次引入。 DPDK pdump库和pdump工具 (http://dpdk.org/doc/guides/prog_guide/pdump_lib.html?highlight=librte_pdump) librte_pdump 库服务于那些被... 继续阅读

DPDK release 18.02 版本发布

DPDK18.02 重磅发布,快看看新增了哪些功能吧~ 增加了允许退出时释放内部EAL资源的功能。 在rte_eal_init()运行期间,EAL从巨页分配内存使其核心库能够执行任务。rte_eal_cleanup()函数可以释放这些资源,确保没有巨页内存泄漏。所有DPDK应用程序在退出之前都应当运行rte_eal_cleanup(),否则可能会出现巨页泄漏,导致次级进程初始化出现故障。 增加了igb,ixgbe和i40e以太网驱动程序以支持带flow API的RSS。 增加对igb, ixgb... 继续阅读

DPDK 报文调度与保序终极解决方案 EventDev 简介

1、背景介绍 网络报文的分发以及保序一直以来是让人头痛的问题, 为了完整的解释Event Dev的背景,我们可以从两个基本概念的定义开始: 报文分发是指针对网络通信报文的某种特征(例如 5 tuples)对网络报文进行分类以及对这个分类进行对应的特定处理。这种分类通常称为是flow, 例如 src ip, src port, dest ip, dest port, 一致的报文被认为是一个flow, 还可以更进一步提取特征来加强判断同一flow的条件, 例如协议类型, tunnel id 等等。 ... 继续阅读

Hyperscan中的 NFA模型演化

我们知道,正则语言等价于NFA(Nondeterministic Finite Automata,非确定有限状态自动机)。Hyperscan作为一款正则表达式匹配引擎,其核心部分是对NFA的构造和处理,编译期将正则表达式转化为与其等价的NFA图并构造NFA引擎,运行期根据输入语料运行NFA引擎来确定匹配位置。 NFA构造方法 NFA中一个状态在遇到相同输入时可能跳转至多个状态。将正则表达式转化为NFA图,常见的有两种构造方法:Thompson构造法和Glushkov构造法。 Thompson构造... 继续阅读

DPDK Release 17.08

17.08新功能 1. x86 ISA的最低版本要求增加到SSE4.2 从17.08开始,DPDK要求在x86上运行的最低版本是SSE4.2。旧版本的最低要求是SSE3。 2. 增加了Service Core功能 EAL新增的Service Core功能允许DPDK在没有应用程序手动运行的情况下在lcores上运行诸如软件PMD之类的服务。 Service core基础架构使得DPDK在同一个 service lcore上运行多个服务时保持灵活性,并为应用程序提供了强大的API来配置从servi... 继续阅读

SSD性能测试第一神器:FIO

对于SSD性能测试来说,最好的工具莫过于FIO了。 上面这个可爱的小伙子名字叫Jens Axboe,他是丹麦哥本哈根大学计算机系没毕业的学生,他还有一个有名的同乡叫Linus,没想到老乡后来也成了他的领导。Jens今年(2017年)40岁,16岁开始就接触Linux,后来也成了Linux开发者,现在是Linux Kernel大拿了,负责块设备层的维护。这个块设备层就是跟我们SSD关系最紧密的层级,联系了上层文件系统和下层设备驱动程序。他开发了不少有用的程序,比如Linux IO Schedule... 继续阅读