本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

中断模式

从 v1.10.0 开始,SUSE Storage 支持 SPDK 中断模式 用于 V2 数据引擎卷。中断模式提供了一种替代默认的 轮询模式 的选择,在某些环境中提供了更好的 CPU 效率。

中断模式特别适合 CPU 资源有限且卷数量相对较少的集群。虽然轮询模式通过保持分配核心的 CPU 利用率接近 100% 来最大化性能,但中断模式通过允许 SPDK 反应器动态调整其使用量而不是持续轮询,从而减少 CPU 使用。

概述

轮询模式与中断模式

  • 轮询模式(默认)

    • 它持续轮询 I/O 操作。

    • 它提供最低的延迟。

    • 它始终消耗 ~100% 的分配的 CPU 核心。

    • 它最适合具有频繁 I/O 的高性能工作负载。

  • 中断模式

    • 它使用中断驱动的 I/O 处理。

    • CPU 消耗与附加卷的数量成比例。

    • 它更适合资源受限的环境。

先决条件

  • SUSE Storage v1.10.0 或更高版本

  • 启用 V2 数据引擎

  • 更改设置时没有附加的 v2 卷

  • 对于 NVMe 磁盘,必须启用 IOMMU。要验证:

    find /sys/kernel/iommu_groups/ -type l

    示例输出(启用IOMMU):

    /sys/kernel/iommu_groups/0/devices/0000:e6:0b.1
    /sys/kernel/iommu_groups/1/devices/0000:34:0a.6
    /sys/kernel/iommu_groups/2/devices/0000:a0:00.0

    如果命令没有返回输出,则IOMMU未启用。

    在虚拟化实例上可能不会暴露IOMMU支持。如果不确定,请考虑使用裸机实例,或咨询您的云服务提供商的文档或支持团队。

    有关更多信息,请参考 SPDK 官方文档

配置

全局设置

要全局启用中断模式,请更新data-engine-interrupt-mode-enabled设置。

重要考虑事项

  • 卷状态要求:当没有V2卷附加时,才能更改该设置。SUSE Storage 如果任何V2卷处于活动状态,则会阻止更新。

  • 全局影响:该设置适用于所有V2卷。

性能特征

推荐的使用案例

为以下情况启用中断模式:

  • 您在资源受限的集群中运行。

  • 您管理的卷数量较少。

  • CPU资源有限或与其他工作负载共享。

  • I/O模式是偶发的而非连续的。

  • 能源效率是优先考虑的。

局限性

混合实现

当前的 V2 卷中断模式采用混合方法进行 NVMe/TCP 传输:

  • 管理队列操作:它仍然依赖于定期轮询以保持连接和控制器恢复。

  • 输入/输出队列完成:它使用轮询来完成命令。

  • 剩余 CPU 使用率:即使在附加卷空闲时,它也会导致小但持续的 CPU 负载。

性能权衡

  • 延迟:它略高于轮询模式。

操作限制

  • 设置更改:在 V2 卷附加时无法修改。

  • 全局范围:它适用于全局;无法针对单个卷进行覆盖。