Deimosfr
Deimosfr

Reputation: 101

Why Sun Java on Solaris take more than twice RSS memory?

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

Upvotes: 0

Views: 1402

Answers (1)

jlliagre
jlliagre

Reputation: 30823

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.

Upvotes: 1

Related Questions