In my recent benchmarks, such as this one about the Virident TachIon card, I
used different values for innodb_buffer_pool_size, like 13GB,
52GB, and 144GB, for testing the tpcc-mysql database with size
100G. This was needed in order to test different memory/dataset
size ratios. But why is it important, and how does it affect
how InnoDB works internally? Let me show some details.
Internally, InnoDB uses two lists for flushing (writing pages from the Innodb buffer pool memory to disk): the LRU list and the flush list. You can see a tracking of these lists in SHOW ENGINE INNODB STATUS:
... Pending writes: LRU 0, flush list 129, single page 0 ...
It is important to understand which list is being used for flushing, because that defines what MySQL InnoDB tuning …
[Read more]