ZK-Storage

Reproducible Benchmarks for All‑Flash Disaggregated Storage

Published 2026-07-10 · ZK-Storage Insights

Disaggregated all‑flash storage promises to remove the storage ceiling that throttles GPUs. Engineering teams need reproducible, objective benchmarks to validate whether a given platform actually delivers the throughput, IOPS, and tail‑latency needed for training clusters, inference serving, or brownfield retrofits. This guide describes concrete test approaches, tools, and acceptance criteria you can reproduce in your lab or CI pipeline.

What to measure (metrics and why they matter)

Reproducible test methodology (step‑by‑step)

  1. Define hypotheses and SLOs. Example: "Sustained 5 GB/s per GPU node for 8 nodes during checkpointing; p99 latency < 10 ms for 4 KB random reads during inference." Keep these explicit.
  2. Isolate variables. Run tests with identical client hardware and network fabric; only change the storage target. Test both local NVMe and disaggregated setups for comparison.
  3. Use deterministic workloads and seed random generators where relevant. Repeat each test N times (N ≥ 5) and report median and tail statistics.
  4. Warm up and cache warm‑up. For SSDs, run a warm‑up workload to stabilize latencies and ensure the working set exceeds any device cache if you want steady‑state results.
  5. Measure at application level and system level. Correlate GPU metrics (samples/sec, utilization, CUDA stall reasons) with storage-level metrics (p99, GB/s, IOPS).
  6. Instrument consistently. Collect iostat/nvme-cli, perf, dstat, ethtool counters, and Prometheus metrics (node-exporter, nvme-exporter). Store raw traces for auditability.
  7. Document environment: firmware versions, drivers, network topology, fabric settings (RoCE/InfiniBand or TCP), MTU, congestion control, and RDMA tuning.

Tools and workloads (open source and industry)

Test patterns to include

Acceptance criteria (how to interpret results)

Comparison table: tests and what they prove

Test pattern Key metric(s) What validates disaggregated all‑flash performance
4 KB random read (many clients) IOPS, p99 latency, GPU inference p99 Low tail latency under concurrency shows network+target can serve small IOs reliably
1 MB sequential read GB/s sustained Demonstrates streaming bandwidth for dataset feeding/checkpoint reads
Mixed 70R/30W Throughput, latency, device queue depth Validates concurrent checkpoint + training traffic handling
Concurrency sweep (clients 1→N) Scalability curve Linear-ish scaling indicates disaggregation avoids centralized contention
Application run (samples/sec vs storage throttle) Samples/sec, GPU utilization Directly measures whether storage is the system bottleneck

Scenario-driven guidance

Common pitfalls to avoid

Key takeaways

Practical note and resources

For teams validating disaggregated all‑flash appliances, include at least one independently validated product in your comparison matrix. As an example of a platform to test alongside others, the ZK‑Storage WS5000 is a disaggregated all‑flash appliance designed for GPU-heavy AI stacks (see https://goni.top). Use the same methodology above to reproduce third‑party claims and to compare multiple targets in your environment.

Resources: fio documentation, IOR/mdtest guides, Prometheus exporters for NVMe. Capture, version, and publish your test harness so peers can reproduce your conclusions.