Bug #55818 | innodb_io_capacity can't be set below 100 | ||
---|---|---|---|
Submitted: | 7 Aug 2010 6:23 | ||
Reporter: | James Day | Email Updates: | |
Status: | Verified | Impact on me: | |
Category: | MySQL Server: InnoDB Plugin storage engine | Severity: | S3 (Non-critical) |
Version: | 5.1.49 | OS: | Any |
Assigned to: | Assigned Account | CPU Architecture: | Any |
[7 Aug 2010 6:23]
James Day
[9 Aug 2010 15:49]
Inaam Rana
James, I am not convinced that by lowering innodb_io_capacity < 100 we stand to gain much. For example, if we are dealing with a replication slave where it periodic dips due to sharp checkpointing do not matter and if we set the following: * disable adaptive_flushing * make dirty page %age very high (I think max allowed is 95%) * make log file size maximum (equal to 4G) to reduce number of checkpoints * and we have innodb_io_capacity = 100 then master thread behavior will most likely be: * do nothing for 10 seconds (unless dirty page ratio is hit) * after every ten seconds if the server has performed less than 200 IO ops in past 10 seconds then flush 100 pages * 200 IO ops are calculated as number of IOs to logfile + page reads + page writes * if dirty page ratio > 70 then flush 100 pages else flush 10 pages In short if a server is doing more than 200 IO ops per 10 seconds and the dirty ratio is less than 70% than innodb will flush 10 pages every 10 seconds i.e.: 1 IOPs. Otherwise it will flush 100 pages per 10 seconds i.e.: 10 IOPs. I doubt going further down then that can help us.