Even if you have more than 4 Gb of physical RAM, a single process
cannot address more than 4 Gb of memory (a P4-Xeon is still a
32 bits processor :( ). You have also to take into account that
a process cannot use these 4 Gb for data since some memory is
used for code, stack,... The exact amount available for
data depends on some compile time kernel parameters; I don't know
the values used by Redhat for their Advance Server kernel but I
suspect that the limit is somewhere between 2 Gb and 3.5 Gb.

You should reduce your key_buffer_size (6 Gb is really off limits).
You can try with a "small" value (1 Gb) and increment it until
you run again into trouble.
Or you can contact Redhat support to find out what is the real
limit and consult MySQL manual on memory usage:
http://www.mysql.com/doc/en/Memory_use.html

Hopefully the remaining memory will still be used by the system for
file caching, and it will still speed up your database accesses.

Hope this helps
-- 
Joseph Bueno

Johannes Ullrich wrote:

> I am having 'issues' with MySQL running on Redhat Advanced Server
> on a 8 Gigbyte machine (dual P4-Xeon).
>
> After large imports ('load data infile', file size about 1 Gigbyte) into
> a large table (20-30 GByte, > 100 Million rows), the database crashes.
>
> I did try several key_buffer_size settings. The example below had the
> key_buffer_size set to 6 Gig (but as you see, it shows -50MByte ?).
> A key buffer size of a bit less then 4 Gig didn't help. I did try a couple
> of other versions, including 4.0.4 and all of them crashed.
>
> The machine is running only one mysql instance at the time. The main issue
> I try to solve is how to optimize lookups against this one big table.
> Its index alone is about 10-15 gig...
>
> >From the log file:
>
> -----------------------------
>
> mysqld got signal 11;
> This could be because you hit a bug. It is also possible that this binary
> or one of the libraries it was linked agaist is corrupt, improperly built,
> or misconfigured. This error can also be caused by malfunctioning
> hardware.
> We will try our best to scrape up some info that will hopefully help
> diagnose
> the problem, but since we have already crashed, something is definitely
> wrong
> and this may fail
>
> key_buffer_size=-50335744
> record_buffer=209711104
> sort_buffer=209715192
> max_used_connections=2
> max_connections=100
> threads_connected=2
> It is possible that mysqld could use up to
> key_buffer_size + (record_buffer + sort_buffer)*max_connections =
> 3161707 K
> bytes of memory
> Hope that's ok, if not, decrease some variables in the equation
>
> Attempting backtrace. You can use the following information to find out
> where mysqld died. If you see no messages after this, something went
> terribly wrong...
> Stack range sanity check OK, backtrace follows:
> 0x806eeb4
> 0x82d9b38
> 0x830592f
> 0x80a194f
> 0x807598a
> 0x80742e7
> Stack trace seems successful - bottom reached
> Please read http://www.mysql.com/doc/U/s/Using_stack_trace.html and follow
> instructions on how to resolve the stack trace. Resolved
> stack trace is much more helpful in diagnosing the problem, so please do
> resolve it
> Trying to get some variables.
> Some pointers may be invalid and cause the dump to abort...
> thd->query at (nil)  is invalid pointer
> thd->thread_id=9
>



---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to