## 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) ## Authors and License Authors: * Mark Korenberg (mark [at] ideco.ru) * Vitaliy Filippov (vitalif [at] yourcmc.ru) License: * GNU GPL 3.0 or later (see [LICENSE](LICENSE))