The binaries tested are:
- XtraDB 1.0.3-5
- InnoDB with MySQL 5.0.77
- v3 Google patch dated April 12
- Time to insert 50M rows into an empty table
- Time to insert several million rows into a table with 50M rows
The my.cnf parameters for 5.0.77 are:
innodb_buffer_pool_size=1GThe my.cnf parameters for the v3 Google patch are:
innodb_log_file_size=1900M
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_max_dirty_pages_pct=20
innodb_doublewrite=0
innodb_buffer_pool_size=1GThe my.cnf parameters for XtraDB are:
innodb_log_file_size=1900M
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=250
innodb_read_io_threads=2
innodb_write_io_threads=2
innodb_max_dirty_pages_pct=20
innodb_ibuf_max_pct_of_buffer=10
innodb_ibuf_reads_sync=1
innodb_doublewrite=0
innodb_log_file_size=1900MAll performance results are anonymous for binaries X, Y and Z. Maybe I can monetize my performance testing effort by doing this. I probably need a new disk soon.
innodb_buffer_pool_size=1G
innodb_flush_log_at_trx_commit=1
innodb_flush_method=O_DIRECT
innodb_io_capacity=250
innodb_use_sys_malloc=0
innodb_read_io_threads=2
innodb_write_io_threads=2
innodb_max_dirty_pages_pct=20
innodb_ibuf_max_size=100M
innodb_ibuf_active_contract=1
innodb_ibuf_accel_rate=200
innodb_doublewrite=0
The first result is the time to insert 50m rows into an empty table measured in seconds. The difference is not that signficant. However, the results can be misleading. 5.0.77 has much more pending work at test end (dirty pages and insert buffer entries). That also made 5.0.77 much slower near the end of the test, but I will save the graphs for the next set of results. The test is run using the run_ib found in the link for iibench at the start of this page. The command line is:
bash run.sh 1 $path no root pw test no innodb 50000000 innodb yes yes $binaryAnd the results are:
- 24478 seconds -- binary X
- 21016 seconds -- binary Y
- 37146 seconds -- binary Z
bash run.sh 1 $path no root pw test no innodb 10000000 innodb no no $binaryAnd the results are:
- 38673 seconds -- binary X
- 11143 seconds -- binary Y
- 21018 seconds -- binary Z



How fast are the CPUs? How important is the choice of XFS over another file system? I'd like to make similar measurements for TokuDB.
ReplyDeleteIntel(R) Pentium(R) Dual CPU E2220 @ 2.40GHz
ReplyDeleteXFS is better than ext-2 because there is a per-inode mutex in ext-2 held for part of the read path and all of the write path meaning no concurrent writes per file. And that is painful when there is but one InnoDB file getting almost all of the writes. I think that ext-3 has the same behavior. XFS does not.
I've been playing with jfs on SSD for InnoDB logs, just for its low overhead. Didn't check mutexes and haven't compared with other filesystems yet.
ReplyDelete