- Setup
- Test 1. Bulk Load of keys in Random Order (benchmark.sh bulkload)
- Test 2. Random Read (benchmark.sh readrandom)
- Test 3. Multi-Random Read (benchmark.sh multireadrandom)
- Test 4. Range Scan (benchmark.sh fwdrange)
- Test 4b. Reverse Range Scan (benchmark.sh revrange)
- Test 5. Overwrite (benchmark.sh overwrite)
- Test 6. Multi-threaded read and single-threaded write (benchmark.sh readwhilewriting)
- Test 7. Multi-threaded scan and single-threaded write (benchmark.sh fwdrangewhilewriting)
- Test 7b. Multi-threaded scan and single-threaded write (benchmark.sh revrangewhilewriting)
- Appendix
- Previous Results
These benchmarks measure RocksDB performance when data resides on flash storage.
Setup
All of the benchmarks are run on the same AWS instance. Here are the details of the test setup:
- Instance type: m5d.2xlarge 8 CPU, 32 GB Memory, 1 x 300 NVMe SSD.
- Kernel version: Linux 4.14.177-139.253.amzn2.x86_64
- File System: XFS with discard enabled
To understand the performance of the SSD card, we ran an fio test and observed 117K IOPS of 4KB reads (See Performance Benchmarks#fio test results for outputs).
All tests were executed against by executing benchmark.sh with the following parameters (unless otherwise specified):
- NUM_KEYS=900000000
- CACHE_SIZE=6442450944
- For long-running tests, the tests were executed with a duration of 5400 seconds (DURATION=5400)
Unless explicitly specified, the remaining tests used default parameters. DIO tests were executed with the options --use_direct_io_for_flush_and_compaction --use_direct_reads
.
All other parameters used the default values, unless explicitly mentioned here. Tests were executed sequentially against the same database instance. The db_bench
tool was generated via make release
.
The following tests were executed in sequence:
Test 1. Bulk Load of keys in Random Order (benchmark.sh bulkload)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 benchmark.sh bulkload
Measure performance to load 900 million keys into the database. The keys are inserted in random order. The database is empty at the beginning of this benchmark run and gradually fills up. No data is being read when the data load is in progress.
Version | Opts | Time | ops/sec | mb/sec | usec/op | p50 | p75 | p99 | p99.9 | p99.99 | Stall-time | Stall% | du -s -k |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 4021 | 1003732 | 402.0 | 1.0 | 0.5 | 0.8 | 2 | 7 | 22 | 00:00:52.558 | 6.3 | 101406408 |
7.2.2 | DIO | 3976 | 1021386 | 409.1 | 1.0 | 0.5 | 0.8 | 2 | 3 | 32 | 00:00:41.215 | 4.9 | 101404476 |
7.1.1 | None | 3951 | 1028135 | 411.8 | 1.0 | 0.5 | 0.8 | 2 | 3 | 21 | 00:00:42.580 | 5.1 | 101407124 |
7.1.1 | DIO | 3920 | 1046129 | 419.0 | 1.0 | 0.5 | 0.8 | 2 | 3 | 20 | 00:00:33.023 | 3.9 | 101407876 |
7.0.3 | None | 3934 | 1040089 | 416.6 | 1.0 | 0.5 | 0.8 | 2 | 3 | 22 | 00:01:02.307 | 7.4 | 101406288 |
7.0.3 | DIO | 3879 | 1060242 | 424.7 | 0.9 | 0.5 | 0.8 | 2 | 3 | 21 | 00:00:50.523 | 6.0 | 101405820 |
6.29.1 | None | 3898 | 1045486 | 418.8 | 1.0 | 0.5 | 0.8 | 2 | 3 | 55 | 00:01:17.876 | 9.3 | 101405948 |
6.29.1 | DIO | 3819 | 1065706 | 426.9 | 0.9 | 0.5 | 0.8 | 2 | 3 | 25 | 00:01:09.405 | 8.3 | 101404236 |
6.29.0 | None | 3899 | 1047693 | 419.6 | 1.0 | 0.5 | 0.8 | 2 | 3 | 108 | 00:01:25.637 | 10.2 | 101407032 |
6.29.0 | DIO | 3828 | 1061703 | 425.3 | 0.9 | 0.5 | 0.8 | 2 | 3 | 21 | 00:00:56.298 | 6.7 | 101405356 |
6.28.0 | None | 3924 | 1050028 | 420.6 | 1.0 | 0.5 | 0.8 | 2 | 3 | 60 | 00:01:17.288 | 9.2 | 101406260 |
6.28.0 | DIO | 3819 | 1072892 | 429.7 | 0.9 | 0.5 | 0.8 | 2 | 3 | 29 | 00:01:01.648 | 7.9 | 101405916 |
6.27.0 | None | 3898 | 1052489 | 421.6 | 0.9 | 0.5 | 0.8 | 2 | 3 | 22 | 00:01:07.776 | 8.1 | 101406796 |
6.27.0 | DIO | 3826 | 1066941 | 427.4 | 0.9 | 0.5 | 0.8 | 2 | 3 | 21 | 00:00:58.306 | 6.9 | 101405580 |
6.26.0 | None | 3892 | 1043630 | 418.0 | 1.0 | 0.5 | 0.8 | 2 | 3 | 54 | 00:01:17.288 | 9.2 | 101407528 |
6.26.0 | DIO | 3899 | 1060561 | 424.8 | 0.9 | 0.5 | 0.8 | 2 | 3 | 22 | 00:01:04.536 | 7.7 | 101402764 |
6.25.0 | None | 3989 | 1032155 | 413.4 | 1.0 | 0.5 | 0.8 | 2 | 3 | 102 | 00:01:23.783 | 10.0 | 101407140 |
6.25.0 | DIO | 3899 | 1048824 | 420.1 | 1.0 | 0.5 | 0.8 | 2 | 3 | 22 | 00:01:04.747 | 7.7 | 101402764 |
6.24.0 | None | 3983 | 1025562 | 410.8 | 1.0 | 0.5 | 0.8 | 2 | 3 | 32 | 00:01:12.296 | 8.6 | 101406524 |
6.24.0 | DIO | 3880 | 1052049 | 421.4 | 1.0 | 0.5 | 0.8 | 2 | 3 | 22 | 00:01:05.862 | 7.8 | 101405064 |
6.23.0 | None | 4175 | 1015722 | 406.8 | 1.0 | 0.5 | 0.8 | 2 | 3 | 69 | 00:01:17.541 | 9.2 | 101405292 |
6.23.0 | DIO | 3885 | 1055232 | 422.7 | 0.9 | 0.5 | 0.8 | 2 | 3 | 21 | 00:00:52.360 | 6.2 | 101402116 |
6.22.1 | None | 4143 | 1013002 | 405.8 | 1.0 | 0.5 | 0.8 | 2 | 3 | 224 | 00:01:26.032 | 10.2 | 101405804 |
6.22.1 | DIO | 4058 | 1031703 | 413.2 | 1.0 | 0.5 | 0.8 | 2 | 3 | 125 | 00:01:23.019 | 9.9 | 101403424 |
6.21.2 | None | 4141 | 1017259 | 407.5 | 0.9 | 0.5 | 0.8 | 2 | 3 | 556 | 00:01:32.279 | 11.0 | 101406320 |
6.15.5 | None | 4068 | 1045195 | 418.6 | 1.0 | 0.5 | 0.8 | 1 | 3 | 980 | 00:02:08.223 | 15.3 | 101401808 |
6.10.4 | None | 4002 | 1062310 | 425.5 | 0.9 | 0.5 | 0.8 | 1 | 3 | 1013 | 00:02:24.652 | 17.2 | 101402936 |
Test 2. Random Read (benchmark.sh readrandom)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 benchmark.sh readrandom
Measure performance to randomly read existing keys. The database after bulkload was used as the starting point.
Version | Opts | ops/sec | mb/sec | usec/op | p50 | p75 | p99 | p99.9 | p99.99 |
---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 136915 | 34.7 | 467.4 | 615.5 | 772.8 | 1270 | 1801 | 2840 |
7.2.2 | DIO | 189236 | 47.9 | 338.2 | 419.6 | 539.1 | 1022 | 1693 | 2297 |
7.1.1 | None | 145490 | 36.8 | 439.9 | 599.7 | 753.7 | 1252 | 1809 | 2813 |
7.1.1 | DIO | 189242 | 47.9 | 338.2 | 419.0 | 539.1 | 1037 | 1696 | 2294 |
7.0.3 | None | 145540 | 36.8 | 439.7 | 599.8 | 753.3 | 1251 | 1803 | 2803 |
7.0.3 | DIO | 189243 | 47.9 | 338.2 | 419.2 | 539.2 | 1029 | 1691 | 2246 |
6.29.1 | None | 145577 | 36.9 | 439.6 | 606.3 | 751.0 | 1204 | 1292 | 2091 |
6.29.1 | DIO | 189243 | 47.9 | 338.2 | 430.0 | 540.9 | 854 | 969 | 1291 |
6.29.0 | None | 145590 | 36.9 | 439.6 | 606.2 | 751.0 | 1204 | 1292 | 1936 |
6.29.0 | DIO | 189241 | 47.9 | 338.2 | 430.0 | 540.8 | 854 | 932 | 1289 |
6.28.0 | None | 146980 | 37.2 | 435.4 | 604.3 | 748.9 | 1195 | 1291 | 1984 |
6.28.0 | DIO | 189232 | 47.9 | 338.2 | 430.0 | 540.9 | 854 | 991 | 1293 |
6.27.0 | None | 146921 | 37.2 | 435.6 | 604.4 | 748.8 | 1194 | 1291 | 1980 |
6.27.0 | DIO | 189250 | 47.9 | 338.2 | 430.1 | 540.8 | 854 | 902 | 1287 |
6.26.0 | None | 128341 | 32.5 | 498.7 | 639.6 | 805.7 | 1272 | 1298 | 2156 |
6.26.0 | DIO | 189244 | 47.9 | 338.2 | 430.1 | 540.8 | 854 | 894 | 1287 |
6.25.0 | None | 128517 | 32.5 | 498.0 | 639.0 | 804.6 | 1272 | 1298 | 2220 |
6.25.0 | DIO | 189245 | 47.9 | 338.2 | 430.1 | 540.8 | 854 | 897 | 1289 |
6.24.0 | None | 130852 | 33.1 | 489.1 | 632.6 | 791.4 | 1266 | 1297 | 2152 |
6.24.0 | DIO | 189240 | 47.9 | 338.2 | 430.0 | 540.7 | 854 | 930 | 1292 |
6.23.0 | None | 137664 | 34.9 | 464.9 | 618.4 | 766.5 | 1244 | 1295 | 2557 |
6.23.0 | DIO | 189252 | 47.9 | 338.2 | 430.0 | 540.7 | 854 | 926 | 1296 |
6.22.1 | None | 138623 | 35.1 | 461.7 | 616.8 | 763.9 | 1239 | 1295 | 2663 |
6.22.1 | DIO | 189237 | 47.9 | 338.2 | 430.0 | 540.7 | 854 | 960 | 1291 |
6.21.2 | None | 138633 | 35.1 | 461.6 | 616.8 | 764.1 | 1240 | 1295 | 2461 |
6.15.5 | None | 138513 | 35.1 | 462.0 | 616.9 | 764.2 | 1240 | 1295 | 3083 |
6.10.4 | None | 138496 | 35.1 | 462.1 | 617.1 | 764.3 | 1240 | 1295 | 2484 |
Test 3. Multi-Random Read (benchmark.sh multireadrandom)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 benchmark.sh multireadrandom —multiread_batched
Measure performance to randomly multi-get existing keys. The database after bulkload was used as the starting point.
Version | Opts | ops/sec | p50 | p75 | p99 | p99.9 | p99.99 |
---|---|---|---|---|---|---|---|
7.2.2 | None | 136928 | 4657.7 | 5774.9 | 9416 | 9873 | 18001 |
7.2.2 | DIO | 189216 | 3415.8 | 4064.2 | 6422 | 6586 | 8602 |
7.1.1 | None | 145548 | 4387.8 | 5568.6 | 8899 | 9831 | 16943 |
7.1.1 | DIO | 189213 | 3413.7 | 4064.2 | 6422 | 6586 | 8630 |
7.0.3 | None | 145587 | 4386.7 | 5567.1 | 8886 | 9829 | 16789 |
7.0.3 | DIO | 189230 | 3413.5 | 4063.8 | 6422 | 6586 | 8590 |
6.29.1 | None | 145652 | 4376.9 | 5549.2 | 8702 | 9813 | 15243 |
6.29.1 | DIO | 189233 | 3410.8 | 4048.6 | 6406 | 6583 | 7498 |
6.29.0 | None | 145660 | 4376.7 | 5549.1 | 8701 | 9811 | 15305 |
6.29.0 | DIO | 189231 | 3410.3 | 4048.0 | 6406 | 6583 | 7310 |
6.28.0 | None | 147022 | 4345.6 | 5523.9 | 8584 | 9804 | 14594 |
6.28.0 | DIO | 189228 | 3410.5 | 4048.4 | 6406 | 6583 | 7679 |
6.27.0 | None | 146989 | 4346.2 | 5524.0 | 8579 | 9806 | 15833 |
6.27.0 | DIO | 189227 | 3409.6 | 4047.2 | 6405 | 6583 | 7332 |
6.26.0 | None | 128366 | 4933.4 | 6093.6 | 9672 | 9884 | 13845 |
6.26.0 | DIO | 189229 | 3409.0 | 4046.8 | 6405 | 6583 | 7282 |
6.25.0 | None | 128523 | 4927.2 | 6087.8 | 9670 | 9883 | 13727 |
6.25.0 | DIO | 189241 | 3408.7 | 4046.6 | 6404 | 6583 | 7525 |
6.24.0 | None | 130859 | 4836.9 | 5995.1 | 9630 | 9880 | 14169 |
6.24.0 | DIO | 189234 | 3409.0 | 4047.2 | 6406 | 6584 | 7996 |
6.23.0 | None | 137638 | 4607.1 | 5736.4 | 9360 | 9869 | 17172 |
6.23.0 | DIO | 189237 | 3409.0 | 4047.0 | 6406 | 6584 | 8125 |
6.22.1 | None | 138660 | 461.6 | 4576.1 | 5706.3 | 9294 | 9867 |
6.22.1 | DIO | 189235 | 338.2 | 3410.7 | 4047.7 | 6406 | 6583 |
6.21.2 | None | 138623 | 461.7 | 4577.4 | 5707.2 | 9294 | 9866 |
6.15.5 | None | 138507 | 462.0 | 4582.3 | 5710.2 | 9299 | 9867 |
6.10.4 | None | 138476 | 462.1 | 4583.0 | 5710.9 | 9298 | 9864 |
Test 4. Range Scan (benchmark.sh fwdrange)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 benchmark.sh fwdrange
Measure performance to randomly iterate over keys. The database after bulkload was used as the starting point.
Version | Opts | ops/sec | mb/sec | usec/op | p50 | p75 | p99 | p99.9 | p99.99 |
---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 70097 | 280.8 | 913.0 | 791.9 | 1435.5 | 1892 | 2811 | 10210 |
7.2.2 | DIO | 78828 | 315.7 | 811.9 | 836.9 | 1093.2 | 1771 | 2601 | 2894 |
7.1.1 | None | 74491 | 298.4 | 859.1 | 775.3 | 1380.6 | 1889 | 1899 | 8592 |
7.1.1 | DIO | 78831 | 315.8 | 811.8 | 836.7 | 1093.1 | 1771 | 2598 | 2982 |
7.0.3 | None | 74510 | 298.4 | 858.9 | 775.2 | 1380.9 | 1889 | 2786 | 8384 |
7.0.3 | DIO | 78832 | 315.8 | 811.8 | 836.8 | 1093.1 | 1771 | 2603 | 2895 |
6.29.1 | None | 74530 | 298.5 | 858.7 | 775.8 | 1392.9 | 1881 | 1899 | 7807 |
6.29.1 | DIO | 78830 | 315.7 | 811.8 | 870.2 | 1090.8 | 1434 | 1862 | 2668 |
6.29.0 | None | 74535 | 298.5 | 858.6 | 775.7 | 1393.3 | 1881 | 1899 | 7553 |
6.29.0 | DIO | 78832 | 315.8 | 811.8 | 870.3 | 1090.3 | 1388 | 1858 | 2620 |
6.28.0 | None | 75231 | 301.3 | 850.7 | 773.7 | 1381.2 | 1880 | 1899 | 8224 |
6.28.0 | DIO | 78828 | 315.7 | 811.9 | 870.2 | 1090.8 | 1438 | 1862 | 2655 |
6.27.0 | None | 75246 | 301.4 | 850.5 | 773.2 | 1384.2 | 1880 | 1899 | 8360 |
6.27.0 | DIO | 78829 | 315.7 | 811.9 | 870.5 | 1090.2 | 1373 | 1855 | 2513 |
6.26.0 | None | 65717 | 263.2 | 973.8 | 808.2 | 1492.5 | 1884 | 1899 | 7217 |
6.26.0 | DIO | 78831 | 315.8 | 811.8 | 870.5 | 1090.2 | 1370 | 1855 | 2512 |
6.25.0 | None | 65813 | 263.6 | 972.4 | 807.7 | 1491.5 | 1884 | 1899 | 7338 |
6.25.0 | DIO | 78833 | 315.8 | 811.8 | 870.4 | 1090.2 | 1369 | 1856 | 2610 |
6.24.0 | None | 67004 | 268.4 | 955.1 | 802.8 | 1480.1 | 1884 | 1899 | 7216 |
6.24.0 | DIO | 78832 | 315.8 | 811.8 | 870.4 | 1090.2 | 1376 | 1856 | 2582 |
6.23.0 | None | 70459 | 282.2 | 908.3 | 789.6 | 1443.0 | 1883 | 1899 | 10273 |
6.23.0 | DIO | 78829 | 315.7 | 811.9 | 870.5 | 1090.1 | 1356 | 1855 | 2596 |
6.22.1 | None | 70971 | 284.3 | 901.7 | 787.8 | 1437.2 | 1882 | 1899 | 10274 |
6.22.1 | DIO | 78829 | 315.7 | 811.9 | 870.3 | 1090.5 | 1411 | 1859 | 2618 |
6.21.2 | None | 70967 | 284.3 | 901.8 | 787.8 | 1437.3 | 1882 | 1899 | 10253 |
6.15.5 | None | 70978 | 284.3 | 901.7 | 787.7 | 1437.5 | 1882 | 1899 | 9890 |
6.10.4 | None | 70973 | 284.3 | 901.7 | 787.6 | 1438.0 | 1882 | 1899 | 9945 |
Test 4b. Reverse Range Scan (benchmark.sh revrange)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 benchmark.sh revrange
Measure performance to randomly iterate over keys. The database after bulkload was used as the starting point.
Version | Opts | ops/sec | mb/sec | usec/op | p50 | p75 | p99 | p99.9 | p99.99 |
---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 68785 | 275.5 | 930.4 | 806.0 | 1467.2 | 1892 | 2859 | 12052 |
7.2.2 | DIO | 76200 | 305.2 | 839.9 | 897.5 | 1114.2 | 1776 | 2617 | 2898 |
7.1.1 | None | 73116 | 292.9 | 875.3 | 788.1 | 1399.9 | 1889 | 2853 | 13338 |
7.1.1 | DIO | 76202 | 305.2 | 839.8 | 897.1 | 1114.1 | 1778 | 2631 | 3022 |
7.0.3 | None | 73149 | 293.0 | 874.9 | 788.0 | 1399.4 | 1889 | 2853 | 13524 |
7.0.3 | DIO | 76202 | 305.2 | 839.8 | 897.4 | 1114.0 | 1776 | 2632 | 3173 |
6.29.1 | None | 73167 | 293.1 | 874.7 | 788.9 | 1406.9 | 1882 | 1900 | 12818 |
6.29.1 | DIO | 76204 | 305.2 | 839.8 | 910.2 | 1112.1 | 1562 | 1874 | 2764 |
6.29.0 | None | 73170 | 293.1 | 874.6 | 788.6 | 1409.1 | 1882 | 1899 | 12688 |
6.29.0 | DIO | 76202 | 305.2 | 839.8 | 910.2 | 1111.5 | 1524 | 1870 | 2722 |
6.28.0 | None | 73839 | 295.8 | 866.7 | 786.5 | 1391.8 | 1881 | 1900 | 13492 |
6.28.0 | DIO | 76205 | 305.2 | 839.8 | 910.0 | 1112.1 | 1560 | 1873 | 2715 |
6.27.0 | None | 73861 | 295.8 | 866.5 | 786.0 | 1396.4 | 1881 | 1899 | 13488 |
6.27.0 | DIO | 76204 | 305.2 | 839.8 | 910.3 | 1111.3 | 1510 | 1869 | 2718 |
Test 5. Overwrite (benchmark.sh overwrite)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 benchmark.sh overwrite
Measure performance to randomly overwrite keys into the database. The database was first created by the previous benchmark.
Version | Opts | ops/sec | mb/sec | W-Amp | W-MB/s | usec/op | p50 | p75 | p99 | p99.9 | p99.99 | Stall-time | Stall% | du -s -k |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 86617 | 34.7 | 9.5 | 149.7 | 738.9 | 449.7 | 777.6 | 10479 | 30005 | 58328 | 00:04:43.188 | 5.3 | 158540048 |
7.2.2 | DIO | 86839 | 34.8 | 9.4 | 154.6 | 737.0 | 460.7 | 775.4 | 9534 | 29149 | 54278 | 00:03:00.102 | 3.4 | 159135832 |
7.1.1 | None | 90203 | 36.1 | 9.4 | 155.4 | 709.5 | 418.5 | 746.0 | 10469 | 30015 | 58380 | 00:04:45.549 | 5.3 | 160992944 |
7.1.1 | DIO | 88590 | 35.5 | 9.6 | 154.6 | 722.4 | 440.2 | 754.0 | 9538 | 29313 | 55494 | 00:04:15.453 | 4.8 | 158372164 |
7.0.3 | None | 90985 | 36.4 | 9.4 | 155.8 | 703.4 | 418.2 | 743.9 | 10156 | 29987 | 57788 | 00:04:48.049 | 5.3 | 161110716 |
7.0.3 | DIO | 89686 | 35.9 | 9.5 | 154.1 | 713.6 | 439.3 | 752.3 | 9377 | 20921 | 53505 | 00:03:28.796 | 3.9 | 160356720 |
6.29.1 | None | 90711 | 36.3 | 9.4 | 155.1 | 705.5 | 418.2 | 740.0 | 10213 | 29779 | 57100 | 00:05:28.848 | 6.1 | 161099792 |
6.29.1 | DIO | 89469 | 35.8 | 9.5 | 154.4 | 715.3 | 431.6 | 748.0 | 9568 | 29143 | 54324 | 00:04:06.106 | 4.6 | 159661172 |
6.29.0 | None | 89373 | 35.8 | 9.6 | 155.3 | 716.1 | 434.1 | 756.1 | 10447 | 29891 | 57952 | 00:04:21.622 | 4.9 | 158912856 |
6.29.0 | DIO | 88517 | 35.5 | 9.5 | 152.6 | 723.0 | 455.1 | 759.1 | 9219 | 28694 | 51750 | 00:03:31.235 | 3.9 | 160258772 |
6.28.0 | None | 89791 | 36.0 | 9.4 | 153.7 | 712.4 | 430.9 | 751.9 | 10292 | 29839 | 58737 | 00:04:15.276 | 4.8 | 161859856 |
6.28.0 | DIO | 88108 | 35.3 | 9.5 | 152.4 | 726.4 | 449.4 | 763.5 | 9508 | 28917 | 54122 | 00:03:25.719 | 3.8 | 159865440 |
6.27.0 | None | 89815 | 36.0 | 9.5 | 154.1 | 712.6 | 427.7 | 749.4 | 10533 | 29660 | 57615 | 00:04:30.399 | 5.0 | 160273772 |
6.27.0 | DIO | 88440 | 35.4 | 9.4 | 151.6 | 723.6 | 455.0 | 761.2 | 9383 | 28764 | 52844 | 00:03:20.977 | 3.7 | 159572484 |
6.26.0 | None | 90340 | 36.2 | 9.4 | 153.6 | 708.4 | 430.2 | 742.5 | 10198 | 29692 | 55635 | 00:04:54.193 | 5.5 | 161202432 |
6.26.0 | DIO | 88401 | 35.4 | 9.6 | 154.5 | 724.0 | 446.0 | 754.6 | 9418 | 28911 | 52526 | 00:03:50.428 | 4.3 | 158469672 |
6.25.0 | None | 89567 | 35.9 | 9.4 | 155.2 | 714.5 | 419.4 | 742.7 | 10327 | 29952 | 59957 | 00:05:52.335 | 6.5 | 160392244 |
6.25.0 | DIO | 88549 | 35.5 | 9.5 | 153.6 | 722.7 | 433.9 | 743.6 | 9483 | 29064 | 54109 | 00:05:00.728 | 5.6 | 158500488 |
6.24.0 | None | 90829 | 36.4 | 4.7 | 155.2 | 704.6 | 397.1 | 726.4 | 10359 | 29968 | 58160 | 00:07:01.849 | 7.9 | 160757048 |
6.24.0 | DIO | 90105 | 36.1 | 4.8 | 153.7 | 710.3 | 421.8 | 736.9 | 9344 | 28869 | 52676 | 00:05:22.128 | 6.0 | 160833572 |
6.23.0 | None | 89052 | 35.7 | 4.7 | 151.3 | 718.7 | 442.5 | 758.8 | 10263 | 29763 | 53874 | 00:04:40.429 | 5.2 | 160633196 |
6.23.0 | DIO | 88624 | 35.5 | 4.9 | 152.4 | 722.1 | 441.5 | 749.0 | 9319 | 28887 | 53792 | 00:04:53.783 | 5.5 | 158994508 |
6.22.1 | None | 91586 | 36.7 | 4.7 | 155.0 | 698.8 | 380.5 | 709.4 | 10140 | 29887 | 58244 | 00:08:29.153 | 9.5 | 161321740 |
6.22.1 | DIO | 90310 | 36.2 | 4.8 | 154.7 | 708.7 | 419.0 | 730.1 | 9227 | 28816 | 55513 | 00:06:22.790 | 7.1 | 160400436 |
6.21.2 | None | 91776 | 36.8 | 4.7 | 155.6 | 697.3 | 379.9 | 708.7 | 10055 | 29782 | 55942 | 00:08:24.882 | 9.4 | 162082088 |
6.15.5 | None | 92911 | 37.2 | 4.7 | 158.4 | 688.8 | 351.9 | 697.7 | 10031 | 29894 | 58333 | 00:08:43.334 | 9.7 | 161156844 |
6.10.4 | None | 94539 | 37.9 | 4.7 | 161.9 | 676.9 | 328.4 | 700.4 | 10022 | 29843 | 56548 | 00:07:11.226 | 8.0 | 162965216 |
Test 6. Multi-threaded read and single-threaded write (benchmark.sh readwhilewriting)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 MB_WRITE_PER_SEC=2 benchmark.sh readwhilewriting
Measure performance with one writer and multiple reader threads. The writes are rate limited.
Version | Opts | ops/sec | mb/sec | W-Amp | W-MB/s | usec/op | p50 | p75 | p99 | p99.9 | p99.99 | du -s -k |
---|---|---|---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 98240 | 31.1 | 18.1 | 11.4 | 651.4 | 600.6 | 829.8 | 3963 | 6041 | 10139 | 140646588 |
7.2.2 | DIO | 143283 | 45.3 | 17.1 | 7.3 | 446.7 | 394.8 | 539.8 | 2820 | 4315 | 6393 | 140470436 |
7.1.1 | None | 102056 | 32.5 | 16.9 | 10.6 | 627.1 | 584.8 | 803.2 | 3931 | 6031 | 9844 | 141627716 |
7.1.1 | DIO | 142958 | 45.3 | 17.9 | 7.6 | 447.7 | 395.6 | 540.1 | 2819 | 4316 | 6405 | 140849884 |
7.0.3 | None | 101948 | 32.5 | 17.0 | 10.7 | 627.7 | 585.6 | 803.6 | 3931 | 6028 | 9824 | 141767112 |
7.0.3 | DIO | 142923 | 45.4 | 18.2 | 7.8 | 447.8 | 393.0 | 539.4 | 2825 | 4322 | 6414 | 141164436 |
6.29.1 | None | 100445 | 31.8 | 28.3 | 18.2 | 637.1 | 593.0 | 810.3 | 3906 | 6524 | 18544 | 140795968 |
6.29.1 | DIO | 141799 | 44.8 | 31.5 | 14.2 | 451.3 | 397.1 | 541.4 | 2792 | 4744 | 9095 | 140017864 |
6.29.0 | None | 100853 | 31.9 | 27.7 | 17.7 | 634.6 | 592.9 | 810.8 | 3893 | 6480 | 17827 | 140416272 |
6.29.0 | DIO | 141947 | 44.8 | 32.6 | 14.4 | 450.9 | 397.4 | 542.1 | 2786 | 4791 | 9273 | 139972676 |
6.28.0 | None | 101233 | 32.0 | 28.3 | 18.3 | 632.2 | 591.6 | 807.0 | 3892 | 6530 | 19073 | 140616192 |
6.28.0 | DIO | 141854 | 44.7 | 35.0 | 15.2 | 451.2 | 394.1 | 541.4 | 2796 | 5000 | 9696 | 139803484 |
6.27.0 | None | 101375 | 32.1 | 27.7 | 17.8 | 631.3 | 587.9 | 805.0 | 3893 | 6477 | 18216 | 140673616 |
6.27.0 | DIO | 142460 | 44.9 | 31.2 | 14.1 | 449.2 | 394.7 | 539.6 | 2789 | 4685 | 9127 | 139867840 |
6.26.0 | None | 91879 | 29.1 | 27.7 | 19.0 | 696.5 | 630.8 | 904.6 | 4010 | 6424 | 13872 | 140615968 |
6.26.0 | DIO | 142148 | 44.8 | 31.8 | 14.4 | 450.2 | 394.7 | 540.0 | 2793 | 4697 | 8939 | 139826380 |
6.25.0 | None | 91736 | 29.0 | 28.7 | 20.0 | 697.6 | 630.8 | 906.2 | 4019 | 6418 | 13775 | 140615968 |
6.25.0 | DIO | 141618 | 44.7 | 33.0 | 14.9 | 451.9 | 394.4 | 540.8 | 2800 | 4825 | 9113 | 140031428 |
6.24.0 | None | 92974 | 29.5 | 27.6 | 19.0 | 688.3 | 624.8 | 869.7 | 4010 | 6436 | 14558 | 140384360 |
6.24.0 | DIO | 141491 | 44.7 | 32.7 | 15.0 | 452.3 | 395.8 | 540.8 | 2802 | 4867 | 9311 | 140255568 |
6.23.0 | None | 96811 | 30.6 | 29.1 | 18.9 | 661.1 | 607.3 | 835.3 | 3966 | 6433 | 13513 | 140384360 |
6.23.0 | DIO | 142410 | 44.9 | 29.6 | 13.5 | 449.4 | 394.0 | 539.3 | 2789 | 4598 | 8989 | 139961824 |
6.22.1 | None | 96812 | 30.7 | 28.4 | 18.5 | 661.1 | 606.5 | 832.8 | 3958 | 6500 | 15777 | 140972560 |
6.22.1 | DIO | 140635 | 44.5 | 32.5 | 14.9 | 455.1 | 400.4 | 543.4 | 2804 | 5051 | 9348 | 140465744 |
6.21.2 | None | 96891 | 30.7 | 29.1 | 18.9 | 660.5 | 607.1 | 833.4 | 3961 | 6465 | 13669 | 141208940 |
6.15.5 | None | 96223 | 30.6 | 28.0 | 18.7 | 665.1 | 609.4 | 835.1 | 3965 | 6475 | 15613 | 141339712 |
6.10.4 | None | 95649 | 30.5 | 30.2 | 19.7 | 669.1 | 608.1 | 834.5 | 3999 | 6597 | 17861 | 141636760 |
Test 7. Multi-threaded scan and single-threaded write (benchmark.sh fwdrangewhilewriting)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 MB_WRITE_PER_SEC=2 benchmark.sh fwdrangewhilewriting
Measure performance with one writer and multiple iterator threads. The writes are rate limited.
Version | Opts | ops/sec | mb/sec | W-Amp | W-MB/s | usec/op | p50 | p75 | p99 | p99.9 | p99.99 | du -s -k |
---|---|---|---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 40675 | 162.9 | 17.4 | 7.4 | 1573.4 | 1374.6 | 1855.1 | 6293 | 13434 | 24996 | 141346104 |
7.2.2 | DIO | 35619 | 142.7 | 18.3 | 7.5 | 1796.6 | 1540.7 | 2171.8 | 6533 | 9698 | 13325 | 140957044 |
7.1.1 | None | 42202 | 169.0 | 16.5 | 7.3 | 1516.4 | 1322.2 | 1821.4 | 6168 | 13098 | 25099 | 142336676 |
7.1.1 | DIO | 35535 | 142.3 | 17.9 | 7.3 | 1800.8 | 1544.5 | 2175.7 | 6527 | 9691 | 13298 | 141591172 |
7.0.3 | None | 42436 | 170.0 | 17.3 | 7.8 | 1508.0 | 1310.0 | 1815.5 | 6198 | 13226 | 24937 | 142579812 |
7.0.3 | DIO | 35702 | 143.0 | 18.9 | 7.8 | 1792.5 | 1535.0 | 2165.4 | 6531 | 9702 | 13343 | 141636716 |
6.29.1 | None | 43138 | 172.8 | 17.6 | 7.8 | 1483.5 | 1294.3 | 1804.6 | 6089 | 13026 | 25065 | 141561940 |
6.29.1 | DIO | 36460 | 146.0 | 16.5 | 7.1 | 1755.2 | 1517.8 | 2128.9 | 6381 | 9572 | 12979 | 140761644 |
6.29.0 | None | 42806 | 171.5 | 17.0 | 7.6 | 1495.0 | 1311.0 | 1813.2 | 6101 | 13108 | 25308 | 140416272 |
6.29.0 | DIO | 36418 | 145.9 | 17.4 | 7.4 | 1757.2 | 1522.1 | 2124.5 | 6404 | 9624 | 13210 | 140619752 |
6.28.0 | None | 43564 | 174.5 | 17.3 | 7.7 | 1469.0 | 1282.2 | 1794.6 | 6055 | 12926 | 24865 | 141241492 |
6.28.0 | DIO | 36230 | 145.1 | 17.7 | 7.5 | 1766.3 | 1527.9 | 2142.4 | 6439 | 9653 | 13251 | 140537532 |
6.27.0 | None | 43229 | 173.2 | 18.3 | 8.3 | 1480.4 | 1290.3 | 1802.6 | 6123 | 13140 | 24987 | 141261580 |
6.27.0 | DIO | 35860 | 143.6 | 16.9 | 7.4 | 1784.5 | 1540.3 | 2181.7 | 6422 | 9603 | 13041 | 140542060 |
6.26.0 | None | 36960 | 148.0 | 17.2 | 8.2 | 1731.4 | 1534.2 | 2217.9 | 6477 | 13239 | 21533 | 141557396 |
6.26.0 | DIO | 35961 | 144.0 | 16.5 | 7.3 | 1779.5 | 1536.8 | 2174.2 | 6415 | 9603 | 13055 | 140627180 |
6.25.0 | None | 37344 | 149.6 | 17.9 | 8.4 | 1713.7 | 1513.5 | 2164.7 | 6489 | 13409 | 21654 | 141269488 |
6.25.0 | DIO | 36023 | 144.3 | 17.9 | 7.8 | 1776.5 | 1532.5 | 2162.0 | 6458 | 9672 | 13308 | 140685060 |
6.24.0 | None | 38940 | 156.0 | 17.7 | 8.1 | 1643.4 | 1445.8 | 1970.8 | 6411 | 13480 | 21757 | 141724476 |
6.24.0 | DIO | 35955 | 144.0 | 17.1 | 7.5 | 1779.8 | 1534.8 | 2173.0 | 6427 | 9615 | 13093 | 140989196 |
6.23.0 | None | 41322 | 165.5 | 16.7 | 7.6 | 1584.7 | 1359.9 | 1838.4 | 6225 | 13285 | 24338 | 141101776 |
6.23.0 | DIO | 35968 | 144.1 | 17.0 | 7.4 | 1779.2 | 1536.8 | 2167.6 | 6446 | 9648 | 13218 | 140731428 |
6.22.1 | None | 41244 | 165.2 | 16.7 | 7.6 | 1551.6 | 1362.3 | 1845.8 | 6234 | 13346 | 24988 | 141716340 |
6.22.1 | DIO | 35962 | 144.0 | 17.0 | 7.4 | 1779.5 | 1538.8 | 2150.6 | 6455 | 9661 | 13264 | 141008104 |
6.21.2 | None | 41360 | 165.7 | 18.2 | 8.0 | 1547.2 | 1354.1 | 1840.5 | 6257 | 13434 | 25280 | 141820100 |
6.15.5 | None | 42197 | 169.0 | 17.5 | 8.0 | 1516.6 | 1315.5 | 1817.8 | 6185 | 13018 | 23081 | 142157224 |
6.10.4 | None | 41827 | 167.5 | 17.6 | 8.0 | 1530.0 | 1329.2 | 1826.2 | 6212 | 13129 | 23244 | 142497356 |
Test 7b. Multi-threaded scan and single-threaded write (benchmark.sh revrangewhilewriting)
NUM_KEYS=900000000 CACHE_SIZE=6442450944 DURATION=5400 MB_WRITE_PER_SEC=2 benchmark.sh revrangewhilewriting
Measure performance with one writer and multiple iterator threads. The writes are rate limited.
Version | Opts | ops/sec | mb/sec | W-Amp | W-MB/s | usec/op | p50 | p75 | p99 | p99.9 | p99.99 | du -s -k |
---|---|---|---|---|---|---|---|---|---|---|---|---|
7.2.2 | None | 33680 | 134.9 | 17.3 | 7.5 | 1900.1 | 1668.2 | 2417.1 | 7207 | 16605 | 29880 | 142066536 |
7.2.2 | DIO | 31215 | 125.0 | 16.4 | 6.9 | 2050.0 | 1755.3 | 2528.0 | 7637 | 10178 | 13981 | 141817860 |
7.1.1 | None | 34825 | 139.5 | 17.4 | 7.7 | 1837.6 | 1623.9 | 2360.8 | 6742 | 16569 | 30135 | 142975980 |
7.1.1 | DIO | 31259 | 125.2 | 17.4 | 7.3 | 2047.2 | 1744.1 | 2520.7 | 7673 | 10205 | 13980 | 142349268 |
7.0.3 | None | 35015 | 140.3 | 17.5 | 7.8 | 1827.6 | 1614.4 | 2345.4 | 6695 | 16540 | 29947 | 143211480 |
7.0.3 | DIO | 31155 | 124.8 | 15.9 | 7.0 | 2054.0 | 1753.5 | 2529.0 | 7627 | 9970 | 13948 | 142568752 |
6.29.1 | None | 35535 | 142.3 | 17.6 | 7.8 | 1800.8 | 1598.9 | 2320.1 | 6572 | 16547 | 30132 | 142191812 |
6.29.1 | DIO | 31839 | 127.5 | 16.8 | 7.3 | 2009.9 | 1731.9 | 2489.0 | 7184 | 9882 | 13917 | 141520096 |
6.29.0 | None | 35676 | 142.9 | 17.3 | 7.8 | 1793.8 | 1592.1 | 2307.6 | 6569 | 16711 | 30812 | 141867556 |
6.29.0 | DIO | 31896 | 127.8 | 17.8 | 7.8 | 2006.3 | 1728.1 | 2483.7 | 7320 | 10017 | 13938 | 141162940 |
6.28.0 | None | 35882 | 143.7 | 16.6 | 7.5 | 1783.4 | 1588.0 | 2292.4 | 6534 | 16405 | 30385 | 142078076 |
6.28.0 | DIO | 31855 | 127.6 | 16.5 | 7.3 | 2008.9 | 1727.1 | 2485.2 | 7287 | 10012 | 14000 | 141298660 |
6.27.0 | None | 35594 | 142.6 | 17.0 | 7.7 | 1797.9 | 1596.8 | 2315.0 | 6566 | 16418 | 29917 | 142075232 |
6.27.0 | DIO | 32086 | 128.5 | 17.0 | 7.4 | 1994.4 | 1717.5 | 2470.2 | 7116 | 9865 | 13867 | 141261580 |
Appendix
fio test results
]$ fio --randrepeat=1 --ioengine=sync --direct=1 --gtod_reduce=1 --name=test --filename=/data/test_file --bs=4k --iodepth=64 --size=4G --readwrite=randread --numjobs=32 --group_reporting
test: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=sync, iodepth=64
...
fio-2.14
Starting 32 processes
Jobs: 3 (f=3): [_(3),r(1),_(1),E(1),_(10),r(1),_(13),r(1),E(1)] [100.0% done] [445.3MB/0KB/0KB /s] [114K/0/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=32): err= 0: pid=28042: Fri Jul 24 01:36:19 2020
read : io=131072MB, bw=469326KB/s, iops=117331, runt=285980msec
cpu : usr=1.29%, sys=3.26%, ctx=33585114, majf=0, minf=297
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued : total=r=33554432/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: io=131072MB, aggrb=469325KB/s, minb=469325KB/s, maxb=469325KB/s, mint=285980msec, maxt=285980msec
Disk stats (read/write):
nvme1n1: ios=33654742/61713, merge=0/40, ticks=8723764/89064, in_queue=8788592, util=100.00%
]$ fio --randrepeat=1 --ioengine=libaio --direct=1 --gtod_reduce=1 --name=test --filename=/data/test_file --bs=4k --iodepth=64 --size=4G --readwrite=randread
test: (g=0): rw=randread, bs=4K-4K/4K-4K/4K-4K, ioengine=libaio, iodepth=64
fio-2.14
Starting 1 process
Jobs: 1 (f=1): [r(1)] [100.0% done] [456.3MB/0KB/0KB /s] [117K/0/0 iops] [eta 00m:00s]
test: (groupid=0, jobs=1): err= 0: pid=28385: Fri Jul 24 01:36:56 2020
read : io=4096.0MB, bw=547416KB/s, iops=136854, runt= 7662msec
cpu : usr=22.20%, sys=48.81%, ctx=144112, majf=0, minf=73
IO depths : 1=0.1%, 2=0.1%, 4=0.1%, 8=0.1%, 16=0.1%, 32=0.1%, >=64=100.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.1%, >=64=0.0%
issued : total=r=1048576/w=0/d=0, short=r=0/w=0/d=0, drop=r=0/w=0/d=0
latency : target=0, window=0, percentile=100.00%, depth=64
Run status group 0 (all jobs):
READ: io=4096.0MB, aggrb=547416KB/s, minb=547416KB/s, maxb=547416KB/s, mint=7662msec, maxt=7662msec
Disk stats (read/write):
nvme1n1: ios=1050868/1904, merge=0/1, ticks=374836/2900, in_queue=370532, util=98.70%
Previous Results
- June 2020: RocksDB 6.10.0
- July 2018: Performance Benchmark 201807
- 2014: Performance Benchmark 2014