minio / warp

S3 benchmarking tool

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Request for "warp --analyze" enhancement, use a consistent output format that may be useful in a tool like Excel

russfellows opened this issue · comments

Request for Enhancement for "warp --analyze".

The resulting text output and csv output from the “warp —analyze” command contain completely different data. The csv output created is essentially a summary of the zst file, without any calculations of throughput rates, object rates, and most importantly there is no latency data provided. Thus, it is not helpful for analysis.

While the text output does contain pertinent information (except as noted for multi op files missing data as noted in another RFE), the text output is in a format that is very difficult to process, with data spread throughout the file, and with different formats for single operation and multi operation results.

As an example of what NOT to do, please do NOT use “fio” as an example of desirable output format, as its output is nearly unusable. As an example of what TO do, look to “vdbench” which creates standard output formats in both text, and csv formats that are easily processed.

Again, many recommendations come to mind, but the authors of warp are likely best positioned to address this issue.

Below is the result of a parser that I created to parse both mutli-op and single-op warp —analyze text outputs, and produce a common format. This is only one such example of a usable possibility:

A possible example result from Single Operation result file:

Op-Type,NumOps,Pct,Concurrent,RunMin,RunSec,TotalRunSecs,NumOps2,RespAvg,Resp50%,Resp90%,Resp99%,Avg-Xfer,Xfer-Units,Obj-Ops,ObjOp-Units
PUT,2458846,100.0,48,24,23,1463,2456282,21ms,3ms,61ms,219ms,9.10,MiB/s,2330.45,obj/s

A possible example result from Multi Operation result file (note some data is given as “-“ since it is missing in your output data, as noted previously). Note: there are 4 lines, a header, along with one line per operation type:


Op-Type,NumOps,Pct,Concurrent,RunMin,RunSec,TotalRunSecs,NumOps2,RespAvg,Resp50%,Resp90%,Resp99%,Avg-Xfer,Xfer-Units,Obj-Ops,ObjOp-Units
DELETE,270978,5.0,20,34,59,2099,270979,11ms,5ms,10ms,172ms,-,-,-,-
GET,4335603,80.0,20,34,59,2099,4335604,5ms,5ms,8ms,12ms,-,-,-,-
PUT,812914,15.0,20,34,59,2099,812915,19ms,14ms,20ms,182ms,-,-,-,-

@russfellows The CSV is not meant to represent the same data. It is the time segmented view of the benchmark data.

#237 Adds request times to CSV output; reqs_ended_avg_ms.

You can use warp analyze --json <file> to output a machine readable version of the data.