I have a client at my employer's company with 192GB RAM using 162GB Buffer Pool.
Here is what we did for the client
- InnoDB Tuning : I set the following options
- innodb_read_io_threads (maxed it to 64)
- innodb_write_io_threads (maxed it to 64)
- innodb_thread_concurrency = 0 (It's default now in MySQL 5.5/5.6)
- innodb_io_capacity (set it to IOPs of Disk, for this client, 20000 [2-0-0-0-0 not typo])
- innodb_buffer_pool_size=162G
- innodb_buffer_pool_instances=2 (Number of Physical Cores)
- OS Tuning (
numactl --interleave=all
)
If you forget numactl --interleave=all
, the buffer pool experiences swapping.
Here are my past posts on tuning InnoDB
Oct 22, 2012
: How large should be mysql innodb_buffer_pool_size?Jul 23, 2012
: How to get the most out of MySQL on a QuadCore machine with 16 GB of RAM?Jul 21, 2012
: InnoDB - High disk write I/O on ibdata1 file and ib_logfile0Sep 20, 2011
: Multi cores and MySQL PerformanceSep 12, 2011
: Possible to make MySQL use more than one core?