Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

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 2 months ago
JSON representation

⏳A minimalistic tool to benchmark AWS S3 compatible object storage services https://giacomoguiulfo.github.io/benchio/

Awesome Lists containing this project

README

        

# benchio

[![Go Report Card](https://goreportcard.com/badge/github.com/giacomoguiulfo/benchio)](https://goreportcard.com/report/github.com/giacomoguiulfo/benchio)
[![Go Doc](https://img.shields.io/badge/godoc-reference-blue.svg?style=flat-square)](http://godoc.org/github.com/giacomoguiulfo/benchio)
[![Release](https://img.shields.io/github/release/giacomoguiulfo/benchio.svg?style=flat-square)](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 |