Page tree
Skip to end of metadata
Go to start of metadata

ReST API

URLCommandPayloadDescription

/api/v1.0/configurations

GET

{
  "agent_count":"#",
  "agent_image": "Glance image",
  "public_network", "Name of public network"
  "stack_created":"True/False",
  "stack_id":"OpenStack Stack ID",
  "volume_size":"#"
}

Fetch the current configuration in JSON format.
 POST

{
  "agent_count": N,
  "agent_volume": "Glance image to boot",
  "public_network": "ext-net",
  "volume_size": N (in GB)
}

Set the configuration and creates the stack in OpenStack.
 DELETE Deletes the stack from OpenStack and resets configuration back to default.
/api/v1.0/jobsGET

{
  "rw.queue-depth.1.block-size.16384.duration": 1841,
  "rw.queue-depth.1.block-size.16384.read.iops": 51.52010714285715,
  "rw.queue-depth.1.block-size.16384.read.latency": 1505.8304166666665,
  "rw.queue-depth.1.block-size.16384.read.throughput": 823.8154761904763
}

Returns JSON
 POST  
 DELETE Terminates the currently running job.

CLI

python storperf/main.py

Command line options:

  • -t or –target
  • -w or –workload
  • -s or –nossd
  • -c or –nowarm
  • 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:

 

Notes

I didn't realize that you can execute commands inside a container without ssh - see docker video:

So I need to update the cli to make it easier to run canned scenarios, or at least document that it can be done this way.

 

 

  • No labels