Jump to content

PermSize bei einem 32 GB Server ?


Empfohlene Beiträge

  • 2 weeks later...

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 zu diesem Kommentar
Auf anderen Seiten teilen

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 zu diesem Kommentar
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...
B
B