exefx Posted September 12, 2014 Share Posted September 12, 2014 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 ? Link to comment Share on other sites More sharing options...
SleepwalkDrive Posted September 22, 2014 Share Posted September 22, 2014 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... Link to comment Share on other sites More sharing options...
idk.cpp Posted September 22, 2014 Share Posted September 22, 2014 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 Link to comment Share on other sites More sharing options...
Gelöscht_kiwi Posted September 22, 2014 Share Posted September 22, 2014 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 Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now