Per-I/O binary feedback (UNDER/OVER) with four update rules — no time measurement needed
Upload a text file with one I/O latency value per line (unit: μs). Blank lines and non-numeric lines are ignored.
.txt, .csv, .dat, .log31.201)The example below uses blktrace to collect D2C (device-to-completion) latency values:
# 1. Trace block I/O on your NVMe device (10 seconds) $ blktrace -d /dev/nvme0n1 -o trace -w 10 & # 2. Run a workload (e.g., 4KB random read, QD=1) $ fio --name=test --filename=/dev/nvme0n1 --direct=1 \ --rw=randread --bs=4k --iodepth=1 --numjobs=1 \ --runtime=10 --time_based # 3. Parse D2C latency in microseconds $ blkparse -i trace -f "%a %S %T.%9t\n" | awk ' /^D/ { issue[$2] = $3 } /^C/ { if ($2 in issue) { printf "%.3f\n", ($3 - issue[$2]) * 1000000 delete issue[$2] } } ' > my_trace.txt
Then upload my_trace.txt above. You can also use any other tracing tool (e.g., bpftrace, biolatency) as long as the output is one latency value (μs) per line.
Gray = device I/O latency (trace), Blue = PAS sleep duration tracking
Multiplicative adjustment applied to sleep duration each I/O. Green band = within ±5% of 1.0