背景:写这篇博客主要原因是因为看到某司线上数据库都配置了SSD盘,但是他们却把redo文件放在普通SAS盘,看到这个忽然想到这配置SSD盘有什么作用呢?对数据库的性能到底是否有提升?
以下是我用sysbench测试的结果:
./sysbench --test=tests/db/update_non_index.lua --mysql-user=dbauser --mysql-password=
--mysql-port=3307 --oltp-table-size=1000000 --oltp-num-table=1 --mysql-host=127.0.0.1
--num-threads=64 prepare
./sysbench --test=tests/db/update_non_index.lua --oltp-table-size=1000000
--oltp-tables-count=1 --mysql-user=dbauser --mysql-password=*
--mysql-host=127.0.0.1 --mysql-port=3307 --num-threads=64 --max-requests=0
--max-time=120 --report-interval=3 run
1. 测试参数:
innodb_buffer_pool_size=90G
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
测试结果:
2. 测试参数:
innodb_buffer_pool_size=90G
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
sync_binlog = 0
3. 测试参数:
innodb_buffer_pool_size=90G
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 1
sync_binlog = 1
从上面的测试结果中很容易的可以发现,redo放在SSD和SAS盘上面的性能差异是非常大的,就算把redo修改成不安全的模式还是有明显的差异。