/ceph-diskbench

Collection of storage device benchmarks to help decide what to use for your cluster

Ceph Disk Benchmarks

In a reasonable Ceph setup, block devices for a Ceph OSD are likely the one bottleneck you'll have. When you place the journal (block.wal) or the database (block.db) on a separate SSD, its performance and durability is particularly important.

If you need professional help for your Ceph cluster, try https://croit.io/ !

List of Devices

ID Size Type Proto IOPS #Jobs Notes
Samsung MZQLW960HMJP-00003 960GB SSD NVMe 268030 16 on IBM Power9, 1 job: 34090, then linear up to ~8 jobs
Samsung PM863a 240GB SSD SATA 58876 10 1 job: 17983, then linear
LENSE20512GMSP34MEAT2TA 512GB SSD NVMe 3164 4 1 job: 1150, 2: 1588, 3: 2396, 5: 3008
Samsung PM961 128GB SSD NVMe 1480 1 2 jobs: 818, 3: 1092, 4: 525, 5: 569
Samsung MZVLB512HAJQ-000L7 512GB SSD NVMe 1164 10 1 job: 384, 2: 771, 3: 603, 4: 715, 5: 786, 10: 1164
Samsung SSD 970 PRO 512GB SSD NVMe 840 2 1 job: 456, 3: 817, 4: 782, 5: 785

For each device, the optimal number of jobs and resulting IO operations per second are determined.

The more IOPS in sync mode can be done, the more transactions Ceph can process on the OSD.

Create a Benchmark

Device model

Get device model number:

smartctl -a /dev/device

fio Benchmark

Beware, the device will be written to!

You can create a new (LVM) partition when device is already in use and do the benchmark on it.

To find the jobcount with highest IOPS score, try numjob values from 1 to 10:

fio --filename=/dev/device --direct=1 --sync=1 --iodepth=1 --runtime=60 --time_based --rw=write --bs=4k --numjobs=[JOBCOUNT] --group_reporting --name=ceph-journal-write-test

In the output, after the ceph-journal-write-test summary was printed, look for write: IOPS=XXXXX.

Contributions

This list is intended to be expanded by YOU! Just run the test and submit a pull request!

Corrections and verifications of listed benchmarks would be very helpful, too!

License

This information is released under CC0.