https://github.com/giacomoguiulfo/benchio
⏳A minimalistic tool to benchmark AWS S3 compatible object storage services https://giacomoguiulfo.github.io/benchio/
https://github.com/giacomoguiulfo/benchio
aws azure benchmark cli cloudserver gcp golang minio s3 zenko
Last synced: about 1 year ago
JSON representation
⏳A minimalistic tool to benchmark AWS S3 compatible object storage services https://giacomoguiulfo.github.io/benchio/
- Host: GitHub
- URL: https://github.com/giacomoguiulfo/benchio
- Owner: giacomoguiulfo
- License: mit
- Created: 2018-09-17T09:25:12.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-16T03:12:46.000Z (almost 4 years ago)
- Last Synced: 2024-11-05T22:39:43.073Z (over 1 year ago)
- Topics: aws, azure, benchmark, cli, cloudserver, gcp, golang, minio, s3, zenko
- Language: Go
- Homepage:
- Size: 550 KB
- Stars: 6
- Watchers: 4
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# benchio
[](https://goreportcard.com/report/github.com/giacomoguiulfo/benchio)
[](http://godoc.org/github.com/giacomoguiulfo/benchio)
[](https://github.com/giacomoguiulfo/benchio/releases/latest)
A lightweight minimalistic tool to benchmark AWS S3 compatible object storage services.
Benchio is a fork of [s3bench](https://github.com/igneous-systems/s3bench) to further extend its functionality.
# Getting Started
## Requirements
- golang >=1.9
## Installation
```sh
go get -u https://github.com/giacomoguiulfo/benchio.git
```
## Simple usage
```
benchio run -f benchio.yaml
```
> This assumes that the `GOBIN` environmental variable (`GOPATH/bin`) is in your `PATH`.
## Advanced Usage
Options can be used as command line arguments or stored in a configuration file
which supports YAML, JSON, or TOML formats.
The default benchio.yaml file contains all the necessary values to run a basic
read/write/cleanup workload.
```yaml
accessKey: MZZRYNUQKEJZUTKLLHAD
secretKey: hRwZ5GA7VUhh=vLdBLUqZuRqcryqyVHhuCopR5a4
endpoint: http://localhost:8000
bucket: testbucket
objectSize: 1024
objectNamePrefix: testobject
numClients: 10
numSamples: 100
verbose: false
region: us-east-1
cleanup: true
write: true
read: true
```
## Available Parameters
| Parameter | Description |
| ----------------------------------- | -----------------------------------------------------------------------------------------------------------------|
| `accessKey` | This is your user access key to access given buckets |
| `secretKey` | This is the secret key used to access given buckets |
| `endpoint` | These are endpoint targets for the workloads. Multiple can be passed as a comma separated list. |
| `bucket` | The target bucket to be used. Must already be created on the specified endpoint |
| `objectSize` | Size for each object to be used in the workload (Currently measured in bytes) |
| `objectNamePrefix` | Prefix to be used in the object naming |
| `numClients` | Number of clients, also referred to as 'workers' |
| `numSamples` | Number of objects to server to the endpoint |
| `verbose` | Gives more information on each object operation |
| `region` | The AWS compatible region where your bucket is located |
| `write` | A bool to enable/disable writes, typically this will be the first operation to run |
| `read` | A bool to enable/disable reads, runs after writes have completed (currently buggy if using only read operations) |
| `cleanup` | A bool to enable/disable cleanup operations after successful read/writes |