rocksdb for rds
近期,我们将myrocks集成到了我们的 rds mysql5.6分支中,rds 5616又多了一个存储引擎rocksdb.
本文将对rds mysql5.6的rocksdb与innodb和tokudb做下对比测试
myrocks介绍参考上篇文章
测试环境
主机配置:
CPU: Intel(R) Xeon(R) CPU E5-2682 v4 @ 2.50GHz
OS kernel: Linux 2.6.32
Memory: 512 G
Disk: SSD
测试方法及参数设置
测试采用sysbench标准测试
Sysbench主要参数:
--max-requests=1000000
--max-time=200
--oltp_tables_count=20
--oltp_table_size=200000
--report-interval=10
AI 代码解读
mysql参数
#sql层
sync_binlog=1
gtid_mode=on
master_info_repository=table
relay_log_info_repository=table
#innodb 未压缩
innodb_buffer_pool_size=12G
innodb_flush_log_at_trx_commit=1
#tokudb 默认zlib 压缩
tokudb_cache_size=12G
tokudb_fsync_log_period=1000
#rocksdb
rocksdb_max_open_files=-1
rocksdb_base_background_compactions=1
rocksdb_max_background_compactions=8
rocksdb_max_total_wal_size=4G
rocksdb_max_background_flushes=4
rocksdb_block_size=16384
rocksdb_block_cache_size=12G
rocksdb_lock_wait_timeout=2
rocksdb_default_cf_options=write_buffer_size=128m;target_file_size_base=32m;max_bytes_for_level_base=512m;level0_file_num_compaction_trigger=4;level0_slowdown_writes_trigger=10;level0_stop_writes_trigger=15;max_write_buffer_number=4;compression_per_level=kNoCompression:kNoCompression:kNoCompression:kZlibCompression:kZlibCompression:kZlibCompression:kZlibCompression;compression_opts=-14:6:0;block_based_table_factory={cache_index_and_filter_blocks=1;filter_policy=bloomfilter:10:false;whole_key_filtering=0};prefix_extractor=capped:12;level_compaction_dynamic_level_bytes=true;optimize_filters_for_hits=true
AI 代码解读
性能测试结果
insert.lua
update_non_index.lua
select.lua
oltp.lua
压缩测试及结果
数据从第三方取的科研数据集,sql文件207G
导入innnodb(未压缩) 312G, tokudb(zlib) 61G, rocksdb(zlib) 56G
rocksdb压缩比tokudb提高约10%