2022-01-18 11:18:01 +03:00
|
|
|
## C++ version of the "Mark's bench" for Ceph
|
|
|
|
|
|
|
|
This tool issues random writes to each OSD separately to determine random write
|
|
|
|
performance of each specific OSD.
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
```
|
|
|
|
# Create a non-replicated pool named bench
|
|
|
|
# PG number (16) should be sufficient for each OSD to get at least 1 PG
|
|
|
|
ceph osd pool create bench 16 16 replicated
|
|
|
|
ceph osd pool set bench size 1
|
|
|
|
|
|
|
|
# Benchmark all OSDs which have at least 1 PG in that pool
|
|
|
|
./ceph-bench bench osd
|
|
|
|
|
|
|
|
# Benchmark hosts (print average result per host)
|
|
|
|
./ceph-bench bench host
|
|
|
|
|
|
|
|
# Benchmark a specific OSD
|
|
|
|
./ceph-bench bench osd 1
|
|
|
|
```
|
|
|
|
|
|
|
|
## Building
|
|
|
|
|
|
|
|
```
|
|
|
|
git clone https://github.com/vitalif/ceph-bench
|
|
|
|
|
|
|
|
cd ceph-bench
|
|
|
|
|
|
|
|
apt-get install build-essential libradospp-dev libjsoncpp-dev libtcmalloc-minimal4
|
|
|
|
|
|
|
|
make
|
|
|
|
```
|
|
|
|
|
|
|
|
## See Also
|
|
|
|
|
|
|
|
* Golang version of the same benchmark: https://github.com/rumanzo/ceph-gobench
|
|
|
|
(currently doesn't work with Ceph 16)
|
|
|
|
* Article about Ceph performance: https://yourcmc.ru/wiki/Ceph_performance
|
|
|
|
* Vitastor, a fast block SDS similar to Ceph RBD: https://vitastor.io/
|
|
|
|
(can achieve ~7k or more T1Q1 write iops)
|
|
|
|
|
2022-01-18 11:24:27 +03:00
|
|
|
## Authors and License
|
2022-01-18 11:18:01 +03:00
|
|
|
|
2022-01-18 11:24:27 +03:00
|
|
|
Authors:
|
|
|
|
* Mark Korenberg (mark [at] ideco.ru)
|
|
|
|
* Vitaliy Filippov (vitalif [at] yourcmc.ru)
|
|
|
|
|
|
|
|
License:
|
|
|
|
* GNU GPL 3.0 or later (see [LICENSE](LICENSE))
|