InnoDB IO Performance Configuration
These InnoDB my.cnf variables are new in the Google patches:
- innodb_max_merged_io - maximum number of IO requests merged to issue large IO from background IO threads.
- innodb_read_io_threads - number of background read I/O threads in InnoDB.
- innodb_write_io_threads - number of background write I/O threads in InnoDB.
- innodb_adaptive_checkpoint - makes the background IO thread flush dirty pages when are there old pages that will delay a checkpoint. OFF provides traditional behavior.
- innodb_check_max_dirty_foreground - make user sessions flush some dirty pages when innodb_max_dirty_pages_pct has been exceeded. OFF provides traditional behavior.
- innodb_file_aio_stats - compute and export per-file IO statistics for InnoDB.
- innodb_flush_adjacent_background - when background IO threads flush dirty pages, flush adjacent dirty pages from the same extent. ON provides traditional behavior.
- innodb_flush_adjacent_foreground - when user sessions flush dirty pages, flush adjacent dirty pages from the same extent. ON provides traditional behavior.
- innodb_ibuf_flush_pct - percent of innodb_io_capacity that should be used for prefetch reads used to merge insert buffer entries.
- innodb_ibuf_max_pct_of_buffer - soft limit for the percent of buffer cache pages that can be used for the insert buffer. When this is exceeded background IO threads work harder to merge insert buffer entries. The hard limit is 50%. The traditional value is 50%.
- innodb_ibuf_reads_sync - use sync IO to read blocks for insert buffer merges. ON provides traditional behavior.
- innodb_io_capacity - maximum number of concurrent IO requests that should be done to flush dirty buffer pool pages. CAUTION -- setting this too high will use a lot of CPU to schedule IO requests and more than 1000 might be too high. The traditional value is 100.