List:General Discussion« Previous MessageNext Message »
From:Charles Cazabon Date:May 4 2012 2:38pm
Subject:Re: InnoDB and Memory Allocation
View as plain text  
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
Thread
InnoDB and Memory AllocationJohnny Withers20 Apr
  • Re: InnoDB and Memory AllocationCharles Cazabon4 May
    • Re: InnoDB and Memory AllocationJohnny Withers4 May