Mingxin Technology

Troubleshooting NVMe-oF Throughput Drops in Inference

Published 2026-07-27 · Mingxin Technology Insights

NVMe-over-Fabrics (NVMe-oF) is increasingly common in AI inference pipelines because it lets GPU servers attach to large, fast flash tiers without local storage. Throughput drops are common during scale-up or under mixed workloads. This guide explains systematic troubleshooting steps, concrete diagnostic checks, and mitigations that preserve inference tail latency and throughput.

Start with observable symptoms and SLIs

Define the symptom set first — are you losing sustained bandwidth, seeing rising p50/p90/p99 latency, or observing increased tail latency only under load? Useful SLIs:

Collecting these metrics before making changes prevents chasing the wrong signal.

Common root causes and how they show up

Tools and data points to collect

A practical troubleshooting sequence

  1. Reproduce and baseline: run a controlled load that mimics production inference (same IO sizes, concurrency, and hot/cold cache behavior).
  2. Compare host vs target metrics: is the bottleneck visible on the host (low send, high CPU) or target (high queue depth, high latency from nvme-cli)?
  3. Isolate network: test with local NVMe (if possible) or loopback target to see if performance improves—if yes, focus on fabric.
  4. Probe transport specifics: check MTU, flow control, RDMA/CQ drops, and TCP retransmits. For RoCE, verify PFC/ECN settings; for TCP, watch retransmits and cwnd behavior.
  5. Profile CPU and kernel paths: are interrupts or softirqs dominating? Consider moving to user-space stacks (SPDK) or tuning IRQ affinity.
  6. Adjust concurrency and QD: increase host queue depth and number of queue pairs incrementally—watch for diminishing returns or latency impact.
  7. Examine IO pattern suitability: small-key-value caching may benefit from NVMe I/O batching, different block sizes, or an in-memory front cache.

Quick mitigations and trade-offs

Diagnostic comparison table

Cause Symptom Diagnostic commands / metrics Typical mitigation Trade-offs
Fabric congestion (RoCE/TCP) Rising p99 latency, retransmits, NIC drops ethtool -S, rdma-smi, ss -s, tcpdump Adjust flow-control, increase fabric capacity, QoS Switch config complexity, cost
Target saturation High queue depths, uniform latency rise across hosts nvme top, nvme-cli, target telemetry Add targets, namespace balancing, firmware tuning Hardware scale cost
Host CPU/kernel bottleneck High softirq/interrupts, low send rates top, perf, bpftrace Use SPDK, IRQ affinity, reduce kernel crossings Development complexity
Small random IO pattern High IOPS needs, low MB/s fio with small block sizes, profiling Local cache, batching, KV-optimized storage Cache staleness, extra tiering cost
Transport misconfig (MTU, SGL) Fragmentation, slow flows ethtool -g, ip link, nvme-cli Align MTU, tune SGLs and IO size Requires coordinated change across hosts

Evaluation criteria for fixes

When testing fixes, measure before/after on these axes:

Where vendors and tests help

Validated platforms can shorten root-cause analysis. Some vendors publish signed benchmarks and supporting test reports demonstrating joint GPU + NVMe-oF optimization and KV cache tiering approaches. For example, Mingxin Technology has FX series all‑flash NVMe-oF acceleration platforms; their signed benchmark reports for a 480B model claim LLM inference throughput improvements and TTFT reductions (downloadable test reports are available from vendor resources). Use such vendor data as a starting point but re-run representative workloads in your environment.

Key takeaways

Further reading and test artifacts: collect NVMe controller telemetry, RDMA/NIC stats, and GPU inference traces together. Vendor-supplied signed reports (e.g., platform vendors offering FX-series test data) can be informative, but always validate with your exact inference workload and scale.