hi zusammen,
seit längerem hab ich das Program, dass mein swap ordentlich ausgelastet wird.
ich hab euch hier mal nen screenshot von htop
http://gallery.debianforum.de/d/26460-1 ... ian_+_.png
könnte ich nicht einfach java weniger ram zuweisen?
Wenn ja: wie geht das??
Grüße und danke
Thoys
java ram
-
- Beiträge: 827
- Registriert: 26.05.2008 12:04:54
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Nörten-Hardenberg
-
Kontaktdaten:
Re: java ram
Weniger RAM ist bei Java so eine Sache.
Was ggf. helfen könnte wäre erst einmal den gesamten Befehl, der bei htop steht, zu zeigen.
Man könnte mal versuchen den Garbage Collector zu wechseln.
Das kann schon krasse Auswirkungen auf die Speichernutzung haben.
Du kannst noch per -Xmx200m oder einer höheren/niedrigerem Wert der VM sagen wieviel RAM genutzt werden dürfen bis eines OutOfMemoryException geworfen wird.
Dabei wird dein Programm mangels Speicherbegrenzung abgeschossen wenn es mehr als den angegeben RAM nutzen möchte.
Ich gehe mal davon aus, dass einfach ein Wechsel des Garbage Collector helfen kann.
Bei deiner aktuellen Kiste, die wirklich schon arg betagt zu seinen scheint, würde ich definitiv den GC umstellen.
Hier mal eine Seite die dir ein paar Optionen empfiehlt.
Ist zwar schon älter kann aber ggf. noch helfen.
http://www.folgmann.de/en/j2ee/gc.html
Ich würde die Optionen -XX:+UseParallelGC -XX:+UseAdaptiveSizePolicy als erstes testen.
Die können den Speicher ordentlich runterhauen.
Aber sonst wäre eben noch der gesamte Befehl wichtig.
Edit:
Schon einmal versucht von SUNs Java auf das OpenJDK umzusteigen?
Die Möglichkeiten sind übrigens gleich das alles von SUNs Java in das OpenJDK einfließt.
Ist aber nur eine Empfehlung, da ich damit seit über 2 Jahren zufrieden unter Debian arbeite.
Martin
Was ggf. helfen könnte wäre erst einmal den gesamten Befehl, der bei htop steht, zu zeigen.
Man könnte mal versuchen den Garbage Collector zu wechseln.
Das kann schon krasse Auswirkungen auf die Speichernutzung haben.
Du kannst noch per -Xmx200m oder einer höheren/niedrigerem Wert der VM sagen wieviel RAM genutzt werden dürfen bis eines OutOfMemoryException geworfen wird.
Dabei wird dein Programm mangels Speicherbegrenzung abgeschossen wenn es mehr als den angegeben RAM nutzen möchte.
Ich gehe mal davon aus, dass einfach ein Wechsel des Garbage Collector helfen kann.
Bei deiner aktuellen Kiste, die wirklich schon arg betagt zu seinen scheint, würde ich definitiv den GC umstellen.
Hier mal eine Seite die dir ein paar Optionen empfiehlt.
Ist zwar schon älter kann aber ggf. noch helfen.
http://www.folgmann.de/en/j2ee/gc.html
Ich würde die Optionen -XX:+UseParallelGC -XX:+UseAdaptiveSizePolicy als erstes testen.
Die können den Speicher ordentlich runterhauen.
Aber sonst wäre eben noch der gesamte Befehl wichtig.
Edit:
Schon einmal versucht von SUNs Java auf das OpenJDK umzusteigen?
Die Möglichkeiten sind übrigens gleich das alles von SUNs Java in das OpenJDK einfließt.
Ist aber nur eine Empfehlung, da ich damit seit über 2 Jahren zufrieden unter Debian arbeite.
Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
- thoys
- Beiträge: 349
- Registriert: 11.08.2008 22:21:24
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: java ram
Hi
vielen Dank, ich werd mich mal mit dem garbage collector beschäftigen. Soweit ich weiss, funktioniert openfire (xmpp server) mit dem java von sun.
Das ist ne virtuelle Maschine auf dem nagelneuen Dell Server von einem Freund. Kommst du "nur" wegen den Werten - also wie viel Ram er hat usw - drauf oder gibt es noch andere Hinweise die ich vielleicht beheben kann.
Danke Thoys
vielen Dank, ich werd mich mal mit dem garbage collector beschäftigen. Soweit ich weiss, funktioniert openfire (xmpp server) mit dem java von sun.
Das ist ne virtuelle Maschine auf dem nagelneuen Dell Server von einem Freund. Kommst du "nur" wegen den Werten - also wie viel Ram er hat usw - drauf oder gibt es noch andere Hinweise die ich vielleicht beheben kann.
Danke Thoys
-
- Beiträge: 827
- Registriert: 26.05.2008 12:04:54
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Nörten-Hardenberg
-
Kontaktdaten:
Re: java ram
Man kann auf deinem Screenshot gut erkennen, dass die Anwendung einfach zu viel Speicher zieht.
Dies deutet entweder auf eine saumäßige Programmierung ohne Optimierungen hin oder einfach nur auf den Einsatz eines falschen Garbage Collectors.
Der richtige Garbage Collector kann die schon ordentlich Speicher freischaufeln.
Bei meiner eigenen Backup Lösung in Java schafft der Default GC es nicht, den Speicher optimal freizubekommen.
Somit springt der Speicher locker mal auf 800mb+ hin.
Eine Umstellung auf den Paralellen GC schafft es den Speicher auf unter 150 MB zu drücken.
Der Garbage Collector ist also dein Freund wenn es um Speicherschonung geht.
Mit dem richtigen kannst du viel Plus machen.
Martin
Dies deutet entweder auf eine saumäßige Programmierung ohne Optimierungen hin oder einfach nur auf den Einsatz eines falschen Garbage Collectors.
Der richtige Garbage Collector kann die schon ordentlich Speicher freischaufeln.
Bei meiner eigenen Backup Lösung in Java schafft der Default GC es nicht, den Speicher optimal freizubekommen.
Somit springt der Speicher locker mal auf 800mb+ hin.
Eine Umstellung auf den Paralellen GC schafft es den Speicher auf unter 150 MB zu drücken.
Der Garbage Collector ist also dein Freund wenn es um Speicherschonung geht.
Mit dem richtigen kannst du viel Plus machen.
Martin
Es gibt keine if Schleife -> http://www.if-schleife.de/
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
Ansonsten GPL/GNU/Linux/Debian/Free Software 4 Ever
- thoys
- Beiträge: 349
- Registriert: 11.08.2008 22:21:24
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: java ram
Dann werd ich meinem neuen Freund mal hallo sagen (nach der Klausur am Freitag)
Vielen Dank euch beiden
Thoys
Vielen Dank euch beiden
Thoys
Re: java ram
Die Verwendung des richtigen GC ist aber sehr von der Anwendung abhängig.
Warum verbraucht denn die Anwendung wahnsinnig viel Speicher!?
Wenn ich die Ausgabe richtig deute, sind es pro Prozesse ca. 52MB. Die Frage wäre wohl eher, müssen so viele Prozesse davon laufen?
Wird der Server so gut genutzt (sind so viele Connections offen)?
Sehe ich das richtig, dass der Server gerade mal 246MB RAM hat? Wirklich viel ist das natürlich auch nicht...
Warum verbraucht denn die Anwendung wahnsinnig viel Speicher!?
Wenn ich die Ausgabe richtig deute, sind es pro Prozesse ca. 52MB. Die Frage wäre wohl eher, müssen so viele Prozesse davon laufen?
Wird der Server so gut genutzt (sind so viele Connections offen)?
Sehe ich das richtig, dass der Server gerade mal 246MB RAM hat? Wirklich viel ist das natürlich auch nicht...
- thoys
- Beiträge: 349
- Registriert: 11.08.2008 22:21:24
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: java ram
Das stimmt mit dem wenig ram, ich mach mich mal schlau.
Das ist openfire. Es sind ungefähr 10 user maximal gleichzeitig online. und 7 server oder so.
Also von viel kann man nicht sprechen.
Wenn man bei openfire einfach weniger Ram einstellen könnte wäre es natürlich am schönsten.
Morgen ist meine letzte Klausur dann setz ich mich mal richtig ran, vielen Dank
Thoys
Das ist openfire. Es sind ungefähr 10 user maximal gleichzeitig online. und 7 server oder so.
Also von viel kann man nicht sprechen.
Wenn man bei openfire einfach weniger Ram einstellen könnte wäre es natürlich am schönsten.
Morgen ist meine letzte Klausur dann setz ich mich mal richtig ran, vielen Dank
Thoys
- thoys
- Beiträge: 349
- Registriert: 11.08.2008 22:21:24
- Lizenz eigener Beiträge: GNU General Public License
-
Kontaktdaten:
Re: java ram
Hi,
also irgendwie gibt es verdammt wenig infos für nicht-totale-freaks
Wie muss ich die Sache denn jetzt angehen um einen neuen garbage collector zu installieren?
Danke
Thoys
also irgendwie gibt es verdammt wenig infos für nicht-totale-freaks
Wie muss ich die Sache denn jetzt angehen um einen neuen garbage collector zu installieren?
Danke
Thoys