Linux schedulers in tpcc like benchmark

I mentioned earlier that IO scheduler CFQ coming by default in RedHat / CentOS 5.x may be not so good for MySQL. And yesterday one customer reported that just changing cfq to noop solved their InnoDB IO problems. I ran tpcc scripts against XtraDB on our Dell PowerEdge R900 server (16 cores, 8 disks in RAID10, controller Perc/6i with BBU) to compare cfq, deadline, noop and anticipatory (last one just to get number, I did not expect a lot from anticipatory).

Here is result (in transactions per minute, more is better):

cfq2793.5
noop6586.4
deadline6513.7
anticipatory1465

Here is graph of disk writes (column bo in vmstat) during benchmark

As you see noop / deadline can utilize disks much better.

For reference I used tpcc scripts from https://launchpad.net/perconatools, generated 100W (about 9.5GB of data on disk), and used next XtraDB params:

Shell











[mysqld]
#mysqld options in alphabetical order
user=root 
default_table_type=MYISAM 

innodb_buffer_pool_size=3G
innodb_data_file_path=ibdata1:10M:autoextend
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=8M
innodb_log_files_in_group=2
innodb_log_file_size=128M
innodb_thread_concurrency=0
innodb_flush_method             = O_DIREC 

innodb_write_io_threads=4
innodb_read_io_threads=4
innodb_io_capacity=800

innodb_adaptive_checkpoint=1 
max_connections=3000
query_cache_size=0
skip-name-resolve 

table_cache=2048

版权声明:QQ:597507041

原文地址:https://www.cnblogs.com/spzhangfei/p/4801757.html