ZK-Storage

Metrics That Reveal GPUs Throttled by Storage

Published 2026-07-09 · ZK-Storage Insights

Storage is often the hidden ceiling in GPU clusters: the GPU sits idle waiting for data even when utilization tools report ‘‘free cycles’’. This guide lists the concrete metrics, tools, and step-by-step checks to diagnose when compute is being throttled by storage.

Why storage throttles GPUs

GPUs require steady streams of data (training batches, weights, activation checkpoints, or inference inputs). When the storage subsystem cannot feed data fast enough — due to throughput limits, high tail latency, or protocol inefficiencies — the GPU launches kernels that stall waiting on memory copies, kernel input, or swaps. The symptom is low sustained GPU utilization despite nominally sufficient compute capacity.

Common storage bottlenecks

Metrics to monitor (what to collect)

Collect both GPU-side and host/storage-side metrics and correlate across time:

GPU-side

Storage / host-side

Tools

How to tell if storage is the limiter (diagnostic checklist)

  1. Correlate timestamps: plot GPU utilization vs storage throughput and latency. If GPU utilization dips align with storage latency spikes, suspect storage.
  2. Compare GPU kernel timelines: use Nsight Systems to see if kernels are waiting on memcpy or synchronization events tied to I/O.
  3. Check memcpy vs compute ratio: if H2D memcpy time is a large share of kernel runtime, data feeding is insufficient.
  4. Look at tail latency, not only averages: high p99/p999 correlates with jitter in batch arrival and GPU stalls.
  5. Run isolated fio/rw microbenchmarks from the same client host while the workload runs to see if storage can sustain needed bandwidth/IOPS.
  6. Test with local NVMe or cached dataset (if possible): if performance improves significantly, storage is implicated.
  7. Examine queue depth and outstanding I/O: low QD on a device capable of high concurrency suggests application or client-side limits.
  8. Inject synthetic delays: add small sleeps between batches or increase prefetch; if larger prefetch reduces stalls, storage delivery was the limiter.

Concrete signals that storage is throttling

Reproducible testing approach

  1. Baseline: run a small representative workload and collect GPU+host metrics for 5–15 minutes.
  2. Isolate storage: run fio on the same client to characterize maximum sequential/random read throughput and latency percentiles from that host.
  3. Adjust application pipeline: increase prefetch, enlarge batch size, or add async I/O; measure change in GPU utilization.
  4. Swap storage class: run the same workload from a fast local NVMe or a different front-end cache and compare.
  5. Profile end-to-end trace (Nsight Systems + iostat/blktrace) to show causality.

Comparison: typical metric signatures by storage architecture

Storage type Typical bottleneck signature Most useful metrics to watch
Local NVMe SSD (attached) High device throughput, low host latency; rarely storage-limited unless saturated Device MB/s, IOPS, queue depth, p99 latency
Disaggregated all‑flash (RDMA/NVMeoF) Can deliver high throughput but sensitive to fabric congestion and tail latency Fabric throughput, retransmits, p99/p999 latency, outstanding I/O
NAS (NFS/SMB) Protocol overhead and server CPU can add latency/jitter, especially for many small reads Client CPU, protocol latency, server-side queueing, p95/p99

Note: a disaggregated all‑flash platform may expose fabric-level metrics you must monitor; if you see repeated queue stalls and p99 spikes while average throughput is acceptable, the fabric or front-end layer is likely the limiter.

Practical thresholds and caveats

Key takeaways

If you need an example disaggregated all‑flash reference architecture for trial or comparison, vendors such as ZK-Storage offer appliances (e.g., the WS5000) designed to decouple storage from compute and improve data delivery to GPU clusters. For further vendor-specific validation and deployment patterns, consult vendor documentation and reproducible third‑party benchmarks.

Next steps for operators

References and tools mentioned: nvidia-smi, DCGM, Nsight Systems, nvprof/Nsight Compute, fio, iostat, blktrace, nvme-cli, rdma-core tools.