I am trying to run the java VM in a virtual linux webserver environment
with WebCentral:
http://www.webcentral.com.au/docs/pr...inux%20Servers
When I invoke the java process, it fails with the output:
Error occurred during initialization of VM
Could not reserve enough space for object heap
The virtual server has 33MB of committed physical RAM, plus (in theory)
up to 12GB of virtual RAM and swap. The system is RH9:
Linux svc014 2.4.20-020stab009.21.777-enterprise #1 SMP Tue Jun 15 13:21:55 MSD 2004 i686 i686 i386 GNU/Linux
/proc/meminfo says:
total: used: free: shared: buffers: cached:
Mem: 4232482816 4178165760 54317056 0 920023040 954605568
Swap: 8586248192 69046272 8517201920
MemTotal: 4133284 kB
MemFree: 53044 kB
MemShared: 0 kB
Buffers: 898460 kB
Cached: 922252 kB
SwapCached: 9980 kB
Active: 929456 kB
Inactive: 1100100 kB
HighTotal: 556972 kB
HighFree: 47136 kB
LowTotal: 3576312 kB
LowFree: 5908 kB
SwapTotal: 8385008 kB
SwapFree: 8317580 kB
An strace shows the offending call to be:
old_mmap(NULL, 134217728, PROT_READ|PROT_WRITE|PROT_EXEC,
MAP_PRIVATE|MAP_ANONYMOUS|MAP_NORESERVE, -1, 0) = -1 ENOMEM (Cannot
allocate memory)
this call is immediately followed by the write() calls to display the
error message. ulimits for memory are 'unlimited'.
So, the questions are:
1. Why is the process unable to allocate 128MB of memory given I should
have access to virtual memory?
2. Why is Java requesting 128MB of memory and how can I stop it? This
number doesn't change even with the -Xms, -Xmx and -Xss options.
3. Where does this 128MB figure come from and how can I change it?
I've tried Sun JRE1.4.2 as well as Blackdown JRE1.4.1 and 1.3.1, all
show the same problem.
I have also logged a job with WebCentral to see if they have encountered
the problem before. Any help or ideas are appreciated!
Thanks in advance,
Kieron Briggs
Web Admin, http://www.andrewwilkie.org.au/