Skip to content

How to interpret performance reports

Kostiantyn Danylov aka koder edited this page Jul 25, 2015 · 3 revisions

Performance report contains next objects:

  • IOPS - input/output operations per second, count
  • BW - bandwidth, measured in MiBps or KiBps
  • Latency - time(in ms) for single operation. As many operations may be executed in parallel latency isn't equals to 1000/IOPS ms.
  • Deviation 95% (range) - with 95% probability each measurement fail into this range
  • Confidence 95% (range) - with 95% probability "real" value fail into this range
  • Median, 95% - median value and 95th percentile, respectively

Operation types:

  • direct write/read - this IO operation bypass FS cache (but may be written into IO buffers)
  • sync write - each write complete only when data is sync to disk.

Thread count - with some operation types, like sync random write and read, device can deliver more performance with more threads, doing same operations in parallel. Meanwhile performance for each thread and latency became worth. Wally make a plot with different thread count to show device scalability.

Results:

Random direct read 4KiB - maximum read IOPS system can deliver Random direct write 4KiB - maximum write IOPS system can deliver Random direct read/write 16MiB blocks - equals to linear write/read. Maximum BW system can deliver

Random read 4k direct IOPS. Shows how small block reads performance are depend on client count. On x axis labels is VM_COUNT * THEAD_PER_VM_COUNT. As tests are usually made from several VM in parallel read client count is (VM count) * (thread per vm count). Bars are show IOPS accordingly to left Y axis. Each bar has deviation and confidence intervals on top. Two lines show 95% and median latency percentile accordingly to right Y axis.

Random write 4k sync IOPS - same as Random read 4k direct, but for sync writes.

16M read and write - same as above, but to 16M blocks. This is equals to linear operations.