Issue
I have 64 GB linux m/c out which DBA have allocated innodb_buffer_pool_size = 40G which mean 24 GB is available for rest of the processes + OS. My question is : Does allocated innodb_buffer_pool_size reserve the memory in advance and wont give that memory back to OS or other processes whenever there is additional need ?
Solution
As long as you don't change the size, it will be allocated at the startup and will not be "give3n back" as ling as mysqld runs.
And you must have enough memory free for the define size else mysql will not start
InnoDB allocates memory for the entire buffer pool at server startup, using malloc() operations. The innodb_buffer_pool_size system variable defines the buffer pool size.
see manual
Answered By - nbk Answer Checked By - Senaida (WPSolving Volunteer)