旁路数据面(DPDK/SPDK)

共 26 题
#

1. DPDK(Data Plane Development Kit)的轮询模式驱动(PMD)原理

A 仍依赖中断驱动收包
B 用户态驱动 + 轮询收包替代中断,消除中断与内核栈开销 ✓ 正确答案
C 数据必须经内核协议栈
D PMD 无法使用 hugepage
#

2. DPDK 与 XDP 在吞吐 vs 通用性上的取舍

A 两者完全相同
B DPDK 与内核集成更好
C XDP 吞吐必然高于 DPDK
D DPDK 吞吐高但独占资源且维护成本高,XDP 更通用易维护但性能略低 ✓ 正确答案
#

3. DPDK 的 NUMA-aware 内存与 CPU 亲和性

A 跨 NUMA 访问延迟更低
B DPDK 不关心 NUMA 拓扑
C 将线程、内存与网卡队列绑定到同一 NUMA 节点,减少跨节点访问、提升性能 ✓ 正确答案
D CPU 亲和性降低性能
#

4. DPDK 的 packet framework(rte_pipeline)的可编程流水线

A 提供表驱动、可配置的匹配-动作流水线,降低数据面开发复杂度 ✓ 正确答案
B rte_pipeline 只能处理控制面
C rte_pipeline 不支持表
D rte_pipeline 与性能无关
#

5. DPDK 的 hugepage 用户态 DMA,如何彻底绕过内核页缓存

A hugepage 增加页表项
B 数据必须先写入内核页缓存
C 数据网卡直接 DMA 到用户态大页内存,绕过内核页缓存与拷贝 ✓ 正确答案
D DPDK 无法使用 hugepage
#

6. DPDK 的 PMD(Poll Mode Driver)与 XDP 的取舍

A 两者完全相同
B PMD 与内核集成更好
C XDP 性能必然高于 PMD
D PMD 性能高但独占资源,XDP 易维护且保留内核能力,按场景选择 ✓ 正确答案
#

7. DPDK 的 KNI(Kernel Network Interface)旁路回内核

A 提供让 DPDK 报文回送内核协议栈的接口,兼顾 DPDK 性能与内核功能 ✓ 正确答案
B KNI 让 DPDK 数据永远留在内核
C KNI 无法创建虚拟接口
D KNI 与内核协议栈无关
#

8. DPDK 的 hugepage 内存分配与 ring buffer(rte_ring)

A rte_ring 需要加锁
B 无锁环形队列,基于原子操作实现多核间低延迟数据传递 ✓ 正确答案
C rte_ring 只能单生产者
D rte_ring 与 hugepage 无关
#

9. DPDK 的 rte_eth_rx_burst / rte_eth_tx_burst 的批处理 API

A 批处理 API 每次只处理一个报文
B 一次调用可收发多个报文,摊薄固定开销、提升吞吐 ✓ 正确答案
C 批处理降低吞吐
D 批处理只用于接收
#

10. DPDK 的 vhost/virtio 集成与虚拟化场景

A 通过共享内存直连虚拟机 virtio,跳过内核 vhost,实现高性能零拷贝网络 ✓ 正确答案
B vhost 必须经过内核协议栈
C vhost 无法用于虚拟化
D vhost 只用于物理机
#

11. DPDK 的内存池(rte_mempool)与 ring 队列

A rte_mempool 运行期频繁 malloc
B 基于无锁 ring 的预分配内存池,运行期获取/释放开销低 ✓ 正确答案
C rte_mempool 需要加锁
D rte_mempool 与 ring 无关
#

12. DPDK 的 PCI 设备发现与 UIO/VFIO 内核模块

A 通过 UIO/VFIO 将设备暴露给用户态驱动,支持用户态 DMA 访问 ✓ 正确答案
B UIO/VFIO 只能用于内核驱动
C DPDK 无需设备绑定
D VFIO 不支持 IOMMU
#

13. DPDK 的多进程(multi-process)模式,primary/secondary 如何分工

A secondary 独立重新初始化所有资源
B primary 负责初始化分配资源,secondary 通过共享内存附着共享资源,实现多进程协同 ✓ 正确答案
C 多进程无法共享内存
D multi-process 只能单进程
#

14. DPDK 在 NFV、5G UPF 的应用案例

A DPDK 无法用于 5G
B DPDK 只能用于终端
C 用于加速虚拟化网络功能与 5G UPF 用户面转发,实现高吞吐低延迟 ✓ 正确答案
D DPDK 在 NFV 中降低性能
#

15. DPDK 的 eventdev 异步调度框架

A eventdev 只能轮询
B 提供事件驱动调度,按规则分发事件到 worker 并支持负载均衡 ✓ 正确答案
C eventdev 无法调度事件
D eventdev 降低核利用率
#

16. SPDK 与 io_uring 在 NVMe 场景的对比

A 两者延迟完全相同
B SPDK 用户态旁路延迟极低但独占设备,io_uring 保留内核语义更通用但延迟略高 ✓ 正确答案
C io_uring 性能必然高于 SPDK
D SPDK 与 io_uring 无关
#

17. SPDK 的 NVMe-oF(NVMe over Fabrics)target

A SPDK NVMe-oF 无法使用 RDMA
B NVMe-oF 只能本地访问
C 以用户态 NVMe 驱动 + NVMe-oF 协议对外提供高性能远程存储访问 ✓ 正确答案
D NVMe-oF 与 NVMe 协议无关
#

18. SPDK 的 blobfs 与 blobstore 块设备抽象

A blobstore 只能用于内核
B blobfs 必须先经过内核
C blobstore 提供用户态块抽象,blobfs 在其上提供文件系统接口 ✓ 正确答案
D blobstore 与文件系统无关
#

19. SPDK 的 hugepage + lockless queue 设计

A lockless queue 需要加锁
B SPDK 运行期频繁分配内存
C 预分配内存 + 无锁队列,消除运行期分配与锁竞争,保证低延迟 ✓ 正确答案
D hugepage 降低性能
#

20. SPDK 的轮询模式(polling)替代中断

A 轮询模式延迟更高
B 持续轮询完成队列替代中断,消除中断延迟、获得低且稳定的延迟 ✓ 正确答案
C 轮询模式不占用 CPU
D SPDK 必须用中断驱动
#

21. SPDK(Storage Performance Development Kit)的用户态 NVMe 驱动

A SPDK 无法直接访问设备
B SPDK 仍需经过内核块层
C SPDK 只能中断驱动
D 在用户态直接驱动 NVMe 设备,绕过内核块层,实现低延迟高吞吐 ✓ 正确答案
#

22. SPDK 在 Ceph、SeaweedFS 的应用案例

A SPDK 只能用于单机
B 作为用户态存储后端减少内核开销,提升分布式存储的 IO 性能 ✓ 正确答案
C SPDK 无法与分布式存储集成
D SPDK 降低 Ceph 性能
#

23. SPDK 的 bdev(block device abstraction)多后端,包括 NVMe、AIO、malloc、iscsi

A bdev 与底层无关
B bdev 只能支持 NVMe
C bdev 后端不可扩展
D 以统一块接口支持 NVMe/AIO/malloc/iscsi 等可插拔后端,屏蔽底层差异 ✓ 正确答案
#

24. SPDK 的 reactor 线程模型与 Intel DPDK 共享

A reactor 不支持多核
B reactor 模型使用中断
C reactor 与 DPDK 完全无关
D 每个核运行 reactor 事件循环并轮询完成,保证低延迟确定性,并与 DPDK 共享资源 ✓ 正确答案
#

25. SPDK 与 RDMA(RoCE、iWARP)的协同

A SPDK 只能基于 TCP
B SPDK 与 RDMA 无法结合
C 通过 NVMe-oF 的 RDMA transport 实现零拷贝低延迟远程存储访问 ✓ 正确答案
D RDMA 与存储无关
#

26. SPDK 的 vhost-scsi 虚拟化存储

A 让虚拟机通过 virtio-scsi 直接访问 SPDK 用户态存储,绕过内核实现高性能存储 ✓ 正确答案
B vhost-scsi 必须经过内核存储路径
C vhost-scsi 无法用于虚拟机
D vhost-scsi 与 SPDK 无关