I am trying to run the java VM in a virtual linux webserver environment
with WebCentral:
When I invoke the java process, it fails with the output:
[color=blue]
> Error occurred during initialization of VM
> Could not reserve enough space for object heap[/color]
The virtual server has 33MB of committed physical RAM, plus (in theory)
up to 12GB of virtual RAM and swap. The system is RH9:
[color=blue]
> Linux svc014 2.4.20-020stab009.21.7 77-enterprise #1 SMP Tue Jun 15[/color]
13:21:55 MSD 2004 i686 i686 i386 GNU/Linux
/proc/meminfo says:
[color=blue]
> 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[/color]
An strace shows the offending call to be:
[color=blue]
> old_mmap(NULL, 134217728, PROT_READ|PROT_ WRITE|PROT_EXEC ,[/color]
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/
Comment