views:

239

answers:

1

Hi,

I've got a problem on my Solaris servers. When I launch a Sun Java process with restricted memory it takes more than twice the ressources.

For example, I have 64 Go of memory on my servers. 1 is on Linux, the others are on Solaris. I ran the same softwares on all servers (only java).

When servers starts they took between 400Mb and 1,2Gb of RAM. I launch my java process (generally between 4 and 16go per java process) and I can't run more than 32 Gb defined with Xmx and Xmx values. I got this kind of errors :

> /java -d64 -Xms8G -Xmx8G -version
Error occurred during initialization of VM
Could not reserve enough space for object heap

As we can see here, I got a lot of reserved memory and it's made by java process :

> swap -s
total: 22303112k bytes allocated + 33845592k reserved = 56148704k used, 704828k available

As soon as I kill them 1 by 1, I recover my reserved space and could launch others. But in fact I can't use more than a half my memory.

Anybody know how to resolve this problem ?

Thanks

A: 

I believe the issue is Linux over committing memory allocation while Solaris is make sure what you allocate fit in virtual memory. If you think that's a Linux advantage, you might reconsider it when Linux OOM killer randomly kill your mission critical application at it worst stage.

To fix the issue, just add more swap space to Solaris.

jlliagre
Thanks for your answer, but no luck adding more swap space, it's the same things. No other ideas ?
Deimosfr
Please provide more details. If the OS can't allocate memory, the explanation is too low a swap space.How much swap space did you add ?Did it show up in "swap -s" and "swap -a" output ?
jlliagre