Большой innodb_buffer_pool_size вешает мусю

Wicked

Новичок
Большой innodb_buffer_pool_size вешает мусю

Ставим 256МБ - все ок.
Ставим 512МБ - муся запускается, но висит, и не принимает соединений. Убивается только киллом.
Планируется поставить 2-4GB, соразмерно working set'у.

OS: FreeBSD 6.2-RELEASE
MySQL: mysql Ver 14.14 Distrib 5.1.21-beta, for portbld-freebsd6.2 (i386) using 5.0

Есть мысли, что надо подкрутить какие-то настройки фряхи, но какие именно - хз. Если кто уже с таким сталкивался, поскажите, плз.

Сейчас попробую воссоздать ситуацию, выложу побольше инфы.

-~{}~ 10.09.08 16:31:

Код:
080910 03:04:19 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
080910  3:04:19  InnoDB: Error: cannot allocate 536887296 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 3757588 bytes. Operating system errno: 12
...
InnoDB: We keep retrying the allocation for 60 seconds...
InnoDB: Fatal error: cannot allocate the memory for the buffer pool
080910  3:05:22 [ERROR] Plugin 'InnoDB' init function returned error.
080910  3:05:22 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
т.е. судя по логам, муся не смогла аллокировать память под буффер пул.

При этом, после запуска с 256M, видим, что свободной памяти остается еще 3610M:
Код:
last pid: 39520;  load averages:  1.56,  1.02,  0.52                                                                                       up 42+19:35:44  03:24:57
104 processes: 5 running, 97 sleeping, 2 stopped
CPU states:  9.7% user,  0.0% nice, 13.3% system,  1.6% interrupt, 75.3% idle
Mem: 528M Active, 3134M Inact, 326M Wired, 420M Cache, 112M Buf, 3610M Free
Swap: 26G Total, 124K Used, 26G Free

  PID USERNAME  THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
39441 mysql      40  20    0   439M   185M kserel 0   6:31 96.78% mysqld
...
-~{}~ 10.09.08 16:33:

встает вопрос: почему фряха может не захотеть отдать больше 512 мб памяти?
 

gray07

Новичок
http://dev.mysql.com/doc/refman/5.1/en/freebsd.html
начиная с "FreeBSD limits the size of a process to 512MB"
 

Alexandre

PHPПенсионер
memory with malloc! Total allocated memory
очевидно нужна несегментированная память - не удается выполнить системный вызов malloc
постарайся взять промежуточную цифру ~320
свободной памяти остается еще 3610M:
сегментированная память

с этим не сталкивался лично
обратись на форум поддержки
 

Wicked

Новичок
gray07
спасибо за наводку, завтра попробуем.

Alexandre
что-то я ничего не понял :)
 

fixxxer

К.О.
Партнер клуба
mysql какбэ хочет сказать - пора переходить на 64бит =)
а вообще лимит на размер процесса ага
 

Alexandre

PHPПенсионер
что-то я ничего не понял
не издевайся:
Error: cannot allocate 536887296 bytes of memory with malloc!
памяти ядро не может выделить больше, чем ты указал
системный вызов malloc...нужна либо перегенерация ядра или изменение его настроек, либо более радикальные меры, как уже сказали
 

phprus

Moderator
Команда форума
Alexandre
Скажите пожалуйста, что значат термины сегментированная и не сегментированная память?
 

pilot911

Новичок
Автор оригинала: phprus
Alexandre
Скажите пожалуйста, что значат термины сегментированная и не сегментированная память?
по всей видимости, память одним куском или набором кусков - отсюда и различие в названиях
 

Wicked

Новичок
помог совет gray07
поставили 2гб на процесс, 1.5гб innodb_buffer_pool_size
 

phprus

Moderator
Команда форума
pilot911
А разве это не фрагментацией называют? Хотя я не очень силен в этой терминологии и по этому задавал свой вопрос.
 

pilot911

Новичок
Автор оригинала: phprus
pilot911
А разве это не фрагментацией называют? Хотя я не очень силен в этой терминологии и по этому задавал свой вопрос.
сложно сказать, что автор имел в виду - я всего лишь предположил
 
Сверху