Atlassian uses cookies to improve your browsing experience, perform analytics and research, and conduct advertising. Accept all cookies to indicate that you agree to our use of cookies on your device. Atlassian cookies and tracking notice, (opens new window)
What is more interesting, if I set limits to 1988Mi or 2048Mi I still get wrong innodb_buffer_pool_size.
With 1G or 4G - there is no such problem and calculation is right.
Environment
None
Smart Checklist
Activity
Show:
Sergey Pronin May 24, 2021 at 11:03 AM
Operator should be smarter here and adjust chunk_size and pool_instances. I agree with Michael here.
Right now our auto-tuner is the reason of OOMs.
Mike Eklund May 19, 2021 at 8:35 PM
Then, IMO, the operator should be better about it’s math since it is setting the innodb_buffer_pool_size based on a fraction (75%) of the container limit, so users do not end up in an OOM kill situation. That 2G limit is a hard limit in K8s.
ege.gunes May 19, 2021 at 8:07 AM
MySQL automatically adjust the buffer pool size as described in the docs:
Buffer pool size must always be equal to or a multiple of innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances. If you configure innodb_buffer_pool_sizeto a value that is not equal to or a multiple of innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances, buffer pool size is automatically adjusted to a value that is equal to or a multiple of innodb_buffer_pool_chunk_size* innodb_buffer_pool_instances.
And the final size is 2GB. Yes! you intended to set the value to 1.5GB and you succeeded in setting it to 2GB. Even if you set 1 byte higher, like setting: 1073741825, you will end up with a buffer pool of 2GB.
Based on a forum post: https://forums.percona.com/t/weird-innodb-buffer-pool-size-setting/9825/2
I verified the case. If memory limits are set to 2GB autotuning for some reason sets wrong innodb_buffer_pool_size:
+-------------------------+------------+ | Variable_name | Value | +-------------------------+------------+ | innodb_buffer_pool_size | 2147483648
What is more interesting, if I set limits to 1988Mi or 2048Mi I still get wrong innodb_buffer_pool_size.
With 1G or 4G - there is no such problem and calculation is right.