Documentation survey

This is unreleased documentation for SUSE® Storage 1.10 (Dev).

Interrupt Mode

Starting with v1.10.0, SUSE Storage supports SPDK interrupt mode for V2 data engine volumes. Interrupt mode provides an alternative to the default polling mode, offering improved CPU efficiency in certain environments.

Interrupt mode is particularly suitable for clusters with limited CPU resources and a relatively small number of volumes. While polling mode maximizes performance by keeping CPU utilization close to 100% on allocated cores, interrupt mode reduces CPU usage by allowing the SPDK reactor to adjust its usage dynamically instead of continuously polling.

Overview

Polling mode vs. Interrupt mode

  • Polling Mode (Default):

    • It continuously polls for I/O operations.

    • It provides the lowest latency.

    • It consumes ~100% of the allocated CPU core at all times.

    • It is best suited for high-performance workloads with frequent I/O.

  • Interrupt Mode:

    • It uses interrupt-driven I/O handling.

    • CPU consumption scales with the number of attached volumes.

    • It is better suited for resource-constrained environments.

Prerequisites

  • SUSE Storage v1.10.0 or later

  • V2 data engine enabled

  • No attached v2 volumes when changing the setting

Configuration

Global setting

To enable interrupt mode globally, update the data-engine-interrupt-mode-enabled setting.

Important considerations

  • Volume State Requirement: The setting can only be changed when no V2 volumes are attached. SUSE Storage blocks updates if any V2 volume is active.

  • Global Effect: The setting applies to all V2 volumes.

Performance characteristics

Enable interrupt mode for these cases:

  • You are running in resource-constrained clusters.

  • You are managing a small number of volumes.

  • CPU resources are limited or shared with other workloads.

  • I/O patterns are sporadic rather than continuous.

  • Energy efficiency is a priority.

Limitations

Hybrid implementation

The current V2 volume interrupt mode uses a hybrid approach for NVMe/TCP transport:

  • Admin Queue Operations: It still relies on periodic polling for keepalive and controller recovery.

  • I/O Queue Completion: It uses polling for command completion.

  • Residual CPU Usage: It results in a small but constant CPU load, even when attached volumes are idle.

Performance trade-offs

  • Latency: It is slightly higher than polling mode.

Operational Restrictions

  • Setting Changes: It cannot be modified while V2 volumes are attached.

  • Global Scope: It applies globally; no per-volume override is available.