Может ли MySQL взять больше 2 гигов памяти на 32-битной ОС?

Labutin

Новичок
Может ли MySQL взять больше 2 гигов памяти на 32-битной ОС?

На сервере стоит Fedora 8. Процессор Intel Pentium DC E2180 2.0GHz/800MHz/1024k Как я понимаю, процессор 64-х битный, но вот федора стоит 32-х битная. Памяти 4 гига. Федора их видит.
Вопрос в том, можно ли Mysql Version: '5.0.51a' отдать больше 2-х гигов? Я попробовал поставить innodb_buffer_pool_size в 3200M и получил в логах
080221 18:38:31 InnoDB: Error: cannot allocate 3355459584 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 176003280 bytes. Operating system errno: 12
InnoDB: Check if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum process size.
InnoDB: Note that in most 32-bit computers the process
InnoDB: memory space is limited to 2 GB or 4 GB.
InnoDB: We keep retrying the allocation for 60 seconds...
InnoDB: Fatal error: cannot allocate the memory for the buffer pool

Мне что крутить? Настройки Fedora? Или выход только один - ставить 64-х битную ОС?

P.S.
[root@mysql mysql]# 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) 55162
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) 55162
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
 

Alexandre

PHPПенсионер
да может,
пространство настраивается
хотя - могу ошибаться.
 

Labutin

Новичок
пространство чего настраивается? Операционной системы или MySQL ?
 

si

Administrator
обычно под линус динамически слинкованному приложению доступно всего ~900M
 

Labutin

Новичок
si
Не, 2 гига нормально отдается MySQL и он стабильно работает. Но доустановили еще 2 гига, а тут такая засада :(
 

Alexandre

PHPПенсионер
Прочел у Зайцева, что это связанно с разрядностью Ось. Больше 2х Гигов для 32 битной оси Мускуль не выдерживает из-за ограничения адресного пространства.
 

Labutin

Новичок
Выяснил, что на самом деле ограничение не в 2 гига, а в 3.
В ближайшее время переедем на новую ОС.
 

Labutin

Новичок
si
Позвонил знакомому гуру - он мне сразу сказал, что при 4-х гигах ядру будет отдан гиг и 3 под пользовательские процессы. Проверил опытным путем - MySQL сейчас в памяти занимает 2.8 гига - полет нормальный. Но т.к. хочется еще памяти отдать под MySQL - будем все равно на 64-х битную федору переходить.
 

fixxxer

К.О.
Партнер клуба
ну на freebsd-i386 у меня где то 3.2g под юзерспейс давало, другой вопрос сколько умеет юзать mysql
 

phprus

Moderator
Команда форума
Если мне не изменяет память, то 3 - 3,2 гига это ограничение архитектуры i386, так как в верхний гигабайт отображаются адреса различных устройств.
 

si

Administrator
считайте сами

#>cat /proc/14671/maps
Код:
08048000-080af000 r-xp 00000000 48:05 31669      /usr/local/apache/bin/httpd
080af000-080b7000 rw-p 00067000 48:05 31669      /usr/local/apache/bin/httpd
080b7000-08557000 rwxp 00000000 00:00 0
[b]40000000-40013000[/b] r-xp 00000000 48:01 11130      /lib/ld-2.2.5.so
40013000-40014000 rw-p 00012000 48:01 11130      /lib/ld-2.2.5.so
40014000-40019000 rw-p 00000000 00:00 0
40019000-4001a000 r-xp 00000000 48:05 16972      /usr/lib/libxsltbreakpoint.so.1.0.8
4001a000-4001b000 rw-p 00000000 48:05 16972      /usr/lib/libxsltbreakpoint.so.1.0.8
4001b000-4003d000 r-xp 00000000 48:01 12866      /lib/libm.so.6
4003d000-4003e000 rw-p 00021000 48:01 12866      /lib/libm.so.6
4003e000-4003f000 rw-p 00000000 00:00 0
4003f000-40047000 r-xp 00000000 48:01 12853      /lib/libcrypt.so.1
40047000-40049000 rw-p 00008000 48:01 12853      /lib/libcrypt.so.1
40049000-40070000 rw-p 00000000 00:00 0
40070000-40076000 r-xp 00000000 48:05 2920       /usr/lib/libgdbm.so.2.0.0
.....
-~{}~ 23.02.08 11:34:

будем все равно на 64-х битную федору переходить.
какой тайный смысл использовать федору на сервере если для этого есть centos ?
 

Labutin

Новичок
На моих серверах всю жизнь стоял сначала RedHat, а потом Федора и я никаких проблем ни с надежностью, ни с администрированием никогда не испытывал. Зачем изменять многолетней привычке?

P.S. Есть объективные данные, что centos лучше Федоры?
 
Сверху