Johnny Withers wrote:
> I hope someone can help me out here. I'm having trouble with some new
> servers and memory allocation.
>
> Some basic specs on the servers:
> 32GB total mem
> 2GB swap
> 64-bit RHEL
> 64-bit mysqld
> overcommit_memory=2
>
> mysql fails to start with 14GB innodb_buffer_pool_size
> mysql will start with 12GB buffer pool setting
> When overcommit_memory is set to 0, mysql starts with 26GB buffer pool.
This is due to a system-wide limitation on the amount of memory that can be
allocated by processes that the Linux kernel imposes when overcommit is
disabled. The limit is (amount of swap) + (percentage of physical memory),
and the default percentage is 50.
So the limit in your case is 2G + 16G == 18G for all processes together; 14G
for innodb_buffer_pool_size is too much.
You can increase the amount of swap, or increase the percentage (via
/proc/sys/vm/overcommit_ratio, which isn't as well-known, though it is in the
kernel documentation).
Hope that helps.
Charles