On Tue, 23 Aug 2005, Jeremiah Gowdy wrote:
The limit you are running into is the maxdsiz or max data size for a process.
It is defaulting to 512MB. In FreeBSD 5.x you don't have to recompile your
kernel to set a different maxdsiz. See /boot/defaults/loader.conf. Putting
kern.maxdsiz="1073741824" in /boot/loader.conf should work.
This is somewhat covered here (but should be updated regarding loader.conf as
a means to set maxdsiz):
http://dev.mysql.com/doc/mysql/en/freebsd.html
Excellent! Just what I needed.
I've summarized my experience and posted a Tip on both the above mentioned
page and the InnoDB OS Error Codes manual page:
http://dev.mysql.com/doc/mysql/en/operating-system-error-codes.html
My summary:
On FreeBSD 5.x, there is a hard limit default compiled into the kernel
which limits the amount of memory a process can use to 512MB. You can
see this by running the command "limits."
You can, without recompiling the kernel, increase this maximum process
size memory limit to any number, as long as that number is absolutely
below your physical memory. I.e. if you have 1GB of memory, do not set
your per process memory limit equal to or higher than that! FreeBSD 5.x
will crash and not be able to be recovered without a local change being
made if you set that limit higher than the amount of physical memory .
(FreeBSD Bug: http://www.freebsd.org/cgi/query-pr.cgi?pr=84656)
In /boot/loader.conf (NOT sysctl.conf), add these lines (on a box with
1.5GB or more memory):
kern.maxdsiz="1073741824" # 1GB
kern.dfldsiz="1073741824" # 1GB
kern.maxssiz="134217728" # 128MB
Then reboot, and increase your my.cnf memory configuration values in
order to increase mysql memory usage.
The Operating system error number you will see is 12 (ENOMEM) Out of
memory:
InnoDB: Error: cannot allocate 797284 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 6299504 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: We keep retrying the allocation for 60 seconds...
InnoDB: Fatal error: cannot allocate the memory for the buffer pool
Hope that helps someone else. Thanks for the help Jeremiah!
Beckman
---------------------------------------------------------------------------
Peter Beckman Internet Guy
[EMAIL PROTECTED] http://www.purplecow.com/
---------------------------------------------------------------------------
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]