On Tue, 13 Jul 2004 23:26:48 +0100, Marvin Wright
<[EMAIL PROTECTED]> wrote:
> Hi,
> 
> I'm now running redhat AS 3.0 with kernel version 2.4 and have 8GB of RAM.
> 
> If I set my innodb_buffer_pool to 2048M, it just will not start, I get this
> error.
> 
> 040713 22:10:24  mysqld started
> 040713 22:10:24  Warning: Asked for 196608 thread stack, but got 126976
> InnoDB: Fatal error: cannot allocate 2147500032 bytes of
> InnoDB: memory with malloc! Total allocated memory

Now I remember what I tracked down the limit to be ...

2147500032  is just above 2 gigabytes of memory.  From what I have
seen, glibc (not sure if this is fixed in recent versions) just
refuses to allocate chunks of memory larger than 2 gigs in a single
call.  This seems a little odd given the library the malloc code is
based on, but I haven't dug deeper.

You can probably get around this if you do both of:

1. replace the call to malloc() in the innodb source with one that does a mmap()
2. run a kernel that has the 4G/4G patch, and possibly also moves
where mmap()ed regions start to be a bit lower than 1 gig (not sure
what the 4G/4G patch does with that).

A pain in the ass.  I strongly encourage people wanting larger innodb
buffers to consider 64-bit Opterons or, less desirably, Intel's xeons
w/64-bit support when they become generally available fairly soon.

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to