This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
|
storperf:api [2015/11/11 15:45] Mark Beierl created |
storperf:api [2015/12/02 18:22] (current) Mark Beierl [Common Options] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== ReST API ===== | ===== ReST API ===== | ||
| + | Start Job: ''http://hostname/api/v1.0/start&workload=[workload]&target=[target]'' | ||
| + | * See Common Options below for a full list | ||
| - | ==== CLI ==== | + | Returns a JSON string as follows: |
| + | { | ||
| + | "version": 1.0 | ||
| + | "job_id": "b88509c0-a297-454a-bb84-6e5ebd59cc22" | ||
| + | } | ||
| + | |||
| + | Query Job Results: ''http://hostname/api/v1.0/report/[job_id]&workload=[workload pattern match]'' | ||
| + | |||
| + | * See Common Responses below for the response format for queries | ||
| + | ===== CLI ===== | ||
| ''python storperf/main.py'' | ''python storperf/main.py'' | ||
| Line 11: | Line 22: | ||
| Command line options: | Command line options: | ||
| - | * target=[device or path] //Optional// The path to either an attached storage device (/dev/vdb, etc) or a directory path (/opt/storperf) that will be used to execute the performance test. In the case of a device, the entire device will be used. If not specified, the current directory will be used. | + | * -t or --target |
| - | * workload=[SW, RW, RR, RW, RS] //Optional// If not specified, the default is to run all workloads. The workload types are: | + | * -w or --workload |
| - | * RS: 100% Read, sequential data | + | * -s or --nossd |
| - | * WS: 100% Write, sequential data | + | * -c or --nowarm |
| - | * RR: 100% Read, random access | + | |
| - | * WR: 100% Write, random access | + | |
| - | * MR: 70% Read / 30% write, random access | + | |
| - | * nossd //optional// Do not perform SSD style preconditioning. | + | |
| - | * nowarm //optional// Do not perform a warmup prior to measurements. | + | |
| * verbose //optional// Emit periodic output describing the current read and write latency, and measured IOPS. | * verbose //optional// Emit periodic output describing the current read and write latency, and measured IOPS. | ||
| + | ====== Common Options ====== | ||
| + | |||
| + | If specified from command line, the option is in the format ''--option=''. For ReST, it is embedded in the URL as ''&option='' | ||
| + | |||
| + | * ''target=''[device or path] //Optional// The path to either an attached storage device (/dev/vdb, etc) or a directory path (/opt/storperf) that will be used to execute the performance test. In the case of a device, the entire device will be used. If not specified, the current directory will be used. | ||
| + | * ''workload=''[workload module] //Optional// If not specified, the default is to run all workloads. The workload types are: | ||
| + | * ''rs'': 100% Read, sequential data | ||
| + | * ''ws'': 100% Write, sequential data | ||
| + | * ''rr'': 100% Read, random access | ||
| + | * ''wr'': 100% Write, random access | ||
| + | * ''rw'': 70% Read / 30% write, random access | ||
| + | * ''nossd'' //optional// Do not perform SSD style preconditioning. | ||
| + | * ''nowarm'' //optional// Do not perform a warmup prior to measurements. | ||
| + | * ''report='' [job_id] //optional// Query the status of the supplied job_id and report on metrics. If a workload is supplied, will report on only that subset. | ||
| + | |||
| + | ====== Common Responses ====== | ||
| + | |||
| + | === Report Responses === | ||
| + | |||
| + | The report command returns a JSON string with the job status (''running'' or ''completed''). If still running: | ||
| + | |||
| + | { | ||
| + | "version": 1.0 | ||
| + | "status": running | ||
| + | "start": 1448905682 | ||
| + | } | ||
| + | |||
| + | If completed: | ||
| + | |||
| + | { | ||
| + | "version": 1.0, | ||
| + | "status": completed, | ||
| + | "start": 1448905682, | ||
| + | "end": 1448905914, | ||
| + | "workload": [ | ||
| + | { | ||
| + | "name": "rw", | ||
| + | "stats": { | ||
| + | "queue-depth": { | ||
| + | "1": { | ||
| + | "block-size": { | ||
| + | "4096": { | ||
| + | "read": { | ||
| + | "iops": 12191, | ||
| + | "latency": { | ||
| + | "min": 23, | ||
| + | "mean": 413.87, | ||
| + | "max": 1638 | ||
| + | } | ||
| + | }, | ||
| + | "write": { | ||
| + | "iops": 5234, | ||
| + | "latency": { | ||
| + | "min": 51, | ||
| + | "mean": 39.98, | ||
| + | "max": 434 | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | ] | ||
| + | } | ||