
作者简介

喻津,Intel软件工程师, 主要从事SPDK软件开发工作。

导读

随着SPDK集成应用的日益广泛,我们希望可以通过解读spdk/example/nvme/perf这个应用,让大家进一步熟悉SPDK用户态驱动的主要工作流程和方式,以及SPDK是如何实现高性能的服务。
什么是SPDK
Storage Performance Development Kit (SPDK)提供了一组用于编写高性能、可伸缩、用户态存储应用程序的工具和库。SPDK的基础是用户态、轮询、异步、无锁 NVMe 驱动。这提供了从用户空间应用程序直接访问SSD的零拷贝、高度并行的访问。
Perf Case的解析
Perf是SPDK用来测试NVMe SSD 性能的工具,它的代码在spdk/example/nvme/perf路径下。Perf主要用来测试NVMe SSD的IOPS, Bandwidth和Latency,它既可以测本地的target,也可以测远端的target,本文解析主要以本地target为主。
perf代码实现的框架如图1所示。

图 1 perf实现的结构图