# 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 无关