List:General Discussion« Previous MessageNext Message »
From:Johnny Withers Date:April 20 2011 3:07am
Subject:InnoDB and Memory Allocation
View as plain text  
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

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.

I'm trying to overcome a problem where running with overcommit_memory=0
causes the oom-killer to eventually take over and start killing things. This
usually causes the entire box to become unresponsive and has to be reboot
from the console. I've read that setting overcommit_memory=2 will cause
malloc() to fail and the offending program to crash. I would rather this
happen than the oom-killer take over. Why can't mysql allocate more than
~14GB when this is set to 2 though? Does anyone else have any experience
with this?

Some more detailed specs about the machine and mysql:

free -m reports 28GB free (32 GB +/- buffers)

[root@p2383075 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 270336
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 270336
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

/usr/libexec/mysqld: ELF 64-bit LSB executable, AMD x86-64, version 1
(SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for
GNU/Linux 2.6.9, stripped

mysql> show variables like '%version%'\G
*************************** 2. row ***************************
Variable_name: version
        Value: 5.0.77-log
*************************** 4. row ***************************
Variable_name: version_comment
        Value: Source distribution
*************************** 5. row ***************************
Variable_name: version_compile_machine
        Value: x86_64
*************************** 6. row ***************************
Variable_name: version_compile_os
        Value: redhat-linux-gnu


Johnny Withers

InnoDB and Memory AllocationJohnny Withers20 Apr
  • Re: InnoDB and Memory AllocationCharles Cazabon4 May
    • Re: InnoDB and Memory AllocationJohnny Withers4 May