作者:某网盘DBA
转发已经过作者同意,如果有其他问题请及时联系。
非经过允许请勿随意转发,尊重版权,感谢。
背景
rocksdb是facebook基于google的leveldb二次开发的key-value存储引擎。目前,facebook已将rocksdb迁移至mysql,作为mysql的可选的存储引擎。
此汇报用于记录rocksdb各种场景下的性能表现,不定期更新。
oltp性能测试
Hardware
Intel(R) Xeon(R) CPU E5-2630 v3 @ 2.40GHz(ht 32)
2.0TB memblaze pcie SSD
128GB RAM
OS Version
Ubuntu 14.04.3 LTS
Data Sample
40M rows*16 tables
MySQL Version
MariaDB 10.2.5
Workload
oltp-rw
oltp-ro
update-only(index)
Storeage Engine
innodb(without compression)
innodb-compression
rocksdb
大小对比
大小对比6亿4千万数据导入mysql,innodb未经压缩大小为160GB,innodb压缩后86GB,rocksdb为62GB。
rocksdb只有innodb(压缩后)的70%。
oltp-rw
70/30读写测试,48个并发线程以下,rocksdb ops要比innodb-compress好。
但超过48线程,rocksdb性能下降较明显。同时,rocksdb的平均响应时间要比innodb高出不少。
oltp-ro
只读测试,rocksdb只有innodb-compress性能的70%。不过在高并发下,rocksdb平均响应时间表现要比innodb-compress好。
update-only(index)
只写测试,rocksdb性能表现优异,ops大概是innodb-compress的10倍。随着并发线程的增加,响应时间几乎不变,维持在50ms以下。
结论:
1. rocksdb压缩率非常高,大约只有innodb的1/3,同时也要比压缩后的innodb小。
2. rocksdb读性能对比innodb还是差不少,但是跟压缩后的innodb相比,某些场景下,还是有一定优势。
3. 写入性能非常优秀。
4. 非常适合写多读少,并且对容量比较敏感的业务场景。
网友评论