Jump to content
Sign in to follow this  
exefx

PermSize bei einem 32 GB Server ?

Recommended Posts

Hallo Leute, was stellt man ein bei einem 32GB Server ?

Mein Startscript lautet :java-Xms32048m-Xmx32048m-XX:PermSize=256m-jar server nogui

sind die 256 m in Ordnung oder sollte man erhöhen ?

Share this post


Link to post
Share on other sites

man knallt doch bet bei 32 gb ram alles in die server anwendung rein oder? Das Os braucht schließlich auch noch ram zum arbeiten...

würde sogar auf 16 gb ram runter gehen...

Share this post


Link to post
Share on other sites

Mal abgesehen davon, dass SleepwalkDrive schon recht hat, kommt die PermGen Size noch zum Heap Space dazu (jedenfalls hab ich das so verstanden, bitte korrigieren wenn falsch).

Andererseits ist die MaxPermSize auch per Default auf 64M gesetzt. Ich weiß nicht was passiert wenn man eine größere Size als MaxSize hat.

Ich würde einen MaxHeap von 24G und eine MaxPermSize von 1G.

Ob du eine initiale allokation durchführen willst bleibt dir überlassen, aber ich glaube dass das nur bedingt nötig ist.

Freundlich grüßt Sie,

idk.cpp

Share this post


Link to post
Share on other sites

Heyho :),

ich habe bisher kaum Anwendungen gesehen, die die Limits von (Max)PermSize sprengen können. Das Allokierungsverhalten (z.B. beim JVM-Startup) des Permspaces kannst du heutzutage auch nicht mehr wirklich optimieren - zu einer hohen Wahrscheinlichkeit deoptimierst du! Aber wenn du den PermSpace auf jeden Fall setzen möchtest (eventuell gibt es bei dir ja Grund dazu, das können wir nicht wissen), dann setz bitte nur MaxPermSize. Und ja, 256 MB sind dafür sehr wohlig dimensioniert :)

Zu deinen Heap-Settings:

Deine JVM wird mit den Settings sofort crashen (oder in den Swap ausweichen, sofern vorhanden). Durch die Angabe von Xms wird sofortbeim Startup jeglich verfügbarer und nichtverfügbarer Speicher allokiert, da du aber nur insgesamt über 32GB verfügst, kann deine Applikation nicht jedes Bit davon nutzen. Dein Kernel braucht auch etwas RAM, genauso wie dein DHCP-Client und dein NTP-Dienst ;) Viel wichtiger ist jedoch der betriebssystemseitige Filesystemcache! Wenn du dem keine Luft zum Atmen gibst, killst du zwangsläufig deine IO-Performance, was besonders schwer zum Tragen kommst, wenn du dir mit deiner virtuellen Maschine (?) die Hostmaschine mit 10 weiteren Leuten teilst. Auf 64bit-Systemen wirst du mit einer so großen Allokierung auch die JVM-Pointercompression verlieren, die für Applikationen mit _sehr hohem_ Referenzaustausch einen nicht unbedeutenden Overallperformanceschub bedeutet.

Soll heißen: Xmx würd ich nicht höher als 24GB setzen (das ist schon echt viel), und Xms nicht höher als 1-4GB. Wenn du irgendwann feststellst, dass dein Javaprozess immer so bei X GB Speichernutzung liegt, dann kannst du die Xms auch daraufhin anpassen.

LG,

kiwi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...
B