Speicher Problem bei grossem Heap

Status
Nicht offen für weitere Antworten.

nollario

Bekanntes Mitglied
Hallo!

Ich arbeite an einer Applikation, die mit 1024 MB Speicher gestartet wird... Das ganze läuft ganz nett... Allerdings stelle ich nach eingen StundenLaufzeit fest, dass Speicher immer knapper wird bis schliesslich

Code:
OutOfMemoryError

auftaucht. Kann das sein, dass das an der VM bzw am Garbage Collector liegt? Anscheinend haben wir nämlich schon darauf geachtet, dass nicht mehr benötigte Ressourcen freigegeben werden (z.B. durch explizites Setzen auf null).

Ist es möglich, das Java mit so einem grossen Speicher Probleme hat?
 

Grizzly

Top Contributor
Ich würde sagen, dass ihr vielleicht doch nicht alle Referenzen auf null gesetzt habt. Es gibt Konstruktionen, bei denen man nicht auf anhieb sieht, dass sie Referenzen nicht wieder freigeben. Ich würde das Teil mal durch den Profiler jagen oder Debuggen. Vielleicht mal in die Finalizer einiger Klasse ein paar Debugging-Meldungen einbauen.
 
B

Beni

Gast
Es kann ja sein, dass ein Objekt eigentlich von niemandem mehr benötigt wird, aber dass dennoch irgendwo noch eine Referenz auf das Objekt zeigt. Dann kann es sinnvoll sein, dass diese letzte Verbindung noch gekappt wird, damit der GC mit seiner Arbeit beginnen kann.
 

nollario

Bekanntes Mitglied
hab mir auch mal alles mögliche zum thema reingezogen: verwendete algorithmen für den gc/ struktur des heap...

ein auf null setzen ist nicht nötig, forciert aber das garbage collecting.

problem ist:
(ohne es beweisen zu können) solange meine applikation nur die hälfte des zur verfügung gestellten speichers verwendet, arbeitet das gc ordentlich. stelle ich meine konfiguration so, dass der speicher komplett erschöpft wird und dreh dann wieder runter, scheint die vm nicht in der lage zu sein, wieder ressourcen frei zu schaufeln!

kann das sein?
(habe zu diesem zeitpunkt keine OutOfMemoryError Meldung - also noch kein Fehler, aber kurz davor ;-) )
 

Grizzly

Top Contributor
nollario hat gesagt.:
[...]stelle ich meine konfiguration so, dass der speicher komplett erschöpft wird und dreh dann wieder runter, scheint die vm nicht in der lage zu sein, wieder ressourcen frei zu schaufeln![...]

Versteh ich jetzt nicht :bahnhof: Wie drehst Du da was rauf und runter? Denn maximalen Heap-Speicher gebe ich doch beim Start der VM an, oder?
 

nollario

Bekanntes Mitglied
durch konfiguration der anwendung zur laufzeit...

vieles funktioniert queue basiert und ich kann die grösse der queues zur laufzeit ändern... damit ändert sich dann auch der speicherbedarf zur laufzeit
 

Grizzly

Top Contributor
Kann es dann nicht sein, dass das Problem in den Queues steckt? Das diese denn Speicher beim runterregeln nicht mehr freigeben (bzw. die Referenzen auf die Objekte).
 

nollario

Bekanntes Mitglied
nollario hat gesagt.:
problem ist:
(ohne es beweisen zu können) solange meine applikation nur die hälfte des zur verfügung gestellten speichers verwendet, arbeitet das gc ordentlich. stelle ich meine konfiguration so, dass der speicher komplett erschöpft wird und dreh dann wieder runter, scheint die vm nicht in der lage zu sein, wieder ressourcen frei zu schaufeln!

kann sein, aber meine vermutung ist (s. zitat) eine andere
 

Grizzly

Top Contributor
nollario hat gesagt.:
nollario hat gesagt.:
problem ist:
(ohne es beweisen zu können) solange meine applikation nur die hälfte des zur verfügung gestellten speichers verwendet, arbeitet das gc ordentlich. stelle ich meine konfiguration so, dass der speicher komplett erschöpft wird und dreh dann wieder runter, scheint die vm nicht in der lage zu sein, wieder ressourcen frei zu schaufeln!

kann sein, aber meine vermutung ist (s. zitat) eine andere
Das kann ich aber fast nicht glauben. Ich habe zwar bisher keine Client-Software geschrieben, die soviel Speicher brauch. Aber JSP/Servlets auf einem Tomcat-Server mit guter Auslastung verbrauchen bestimmt auch so viel Speicher. Und da hab' ich bisher noch nie von solchen Problemen gehört. ???:L

Wie gesagt: Ich würde das mal versuchen zu profilen bzw. zu debuggen (auf gut Denglisch ;) ).
 

nollario

Bekanntes Mitglied
ich hab ach schon webandwendungen/ j2ee anwendungen programmiert, da hat allerdings ein einzelner server node nicht so viel heap benötigt.... wie gesagt, aber 1GB wird es eng... profiling habe ich schon gemacht und die phänomene, die man so feststellt sprechen eine sprache, die das vm als problem darstellt.
 

nollario

Bekanntes Mitglied
sooooooo... allmählich wirds traurif... habe ALLE (!!!) und das sind nicht wenige konfigurationen für die vm von sun unter solaris os bezüglich gc ausprobiert... kaum erfolg!!!!

und jetzt kommts: aufruf von
Code:
System.gc();
alle 5 minuten und das progrämmchen schnurt wie eine katze ohne irgendwelche probs.... speicher wird wieder ordentlich freigegeben und alles ist prima... bin da schon etwas enttäuscht, da die vm das auch alleine hinbekommen sollte. anscheinend ist sie bei größeren speichermengen einfach nicht schell genug mit dem wegräumen... :(
 
R

Roar

Gast
hehe sieh mal einer an :toll: :toll:
gut zu wissen dass das ding doch was nützt :D
 

nollario

Bekanntes Mitglied
ja, aber eigentlich find ich es nicht so toll, dass man nun doch wieder die objekt leichen "händisch" entfernen muss - das ist sache der vm, sonst hätte man auch bei c++ bleiben können....
 

Grizzly

Top Contributor
Gut, dass die VM nicht ständig den Garbage Collector laufen lässt, ist klar. Aber das er in einer Periode von mehr als 5 Minuten läuft ist schon merkwürdig. Und vor allem sollte die VM ihn doch wenigstens kurz bevor der freie Heap voll weg ist starten.
 

nollario

Bekanntes Mitglied
er läuft ja schon, aber er kommt vom tempo her nicht hinterher... speicherplatz wird schneller benötigt, als er freigegeben wird, deswegen gibt es bei mir immer mal solche knappheiten. ich dachte, ein = null setzen (dereferenzieren) würde zum zügigen wegräumen durch die vm führen, aber das ist wohl ein irrglaube
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Speicher-Problem Allgemeine Java-Themen 4
C Speicher Problem Allgemeine Java-Themen 3
A Speicher/Anzeige Problem in JTable Allgemeine Java-Themen 2
C Virtueller Speicher Allgemeine Java-Themen 36
sascha-sphw Auf GoPro Speicher zugreifen Allgemeine Java-Themen 10
TheJavaKid Mit Java die Festplatte mit dem meisten freien Speicher finden Allgemeine Java-Themen 7
J Strings int textdokumente speicher Allgemeine Java-Themen 3
M Eine Datei im Speicher erneut laden(?) Allgemeine Java-Themen 1
L Input/Output Datei in den Speicher lesen. Allgemeine Java-Themen 9
Thallius Wie mache ich eine Java App mit Icon startbar die mehr Heap Speicher braucht? Allgemeine Java-Themen 3
P Große Datenstruktur im Speicher halten Allgemeine Java-Themen 13
H Frage wegen Heap-Speicher Allgemeine Java-Themen 2
M Speicher der VM Allgemeine Java-Themen 4
W PDFBox "Nicht genügend Speicher" Allgemeine Java-Themen 2
C Strings und JSON Objekte so klein wie möglich im Speicher ablegen Allgemeine Java-Themen 5
V Input/Output BufferedI/OStream leert den Speicher Allgemeine Java-Themen 7
G Speicher erhöhen Allgemeine Java-Themen 10
R Programm frisst 'Virtuellen Speicher' wie PacMan Allgemeine Java-Themen 4
P Java Anwendung mehr Speicher zur Verfügung stellen?? Allgemeine Java-Themen 3
A 2D-Grafik 2MB jpg wird zu 300MB im speicher (fehler) Allgemeine Java-Themen 8
E Speicherverwaltung bzw. Speicher wieder frei geben?! Allgemeine Java-Themen 8
D Speicher beim Start zuweisen Allgemeine Java-Themen 10
S Bei Sortierung Speicher zu gering? Allgemeine Java-Themen 8
hdi Was frisst in meinem Programm den Speicher / verschlechtert die Performance Allgemeine Java-Themen 11
S Jar Datei mit mehr Speicher starten Allgemeine Java-Themen 2
S JAR Datei, mehr Speicher bereitstellen Allgemeine Java-Themen 5
S Viele Bilder -> Speicher ausgelastet? / (De-)serialisierung geht nicht mehr richtig Allgemeine Java-Themen 8
E Speicher frei machen (List) Allgemeine Java-Themen 9
J Speicher Probleme vorbeugen Allgemeine Java-Themen 8
C Laden / Speicher Allgemeine Java-Themen 8
R Eigener Assoziativ-Speicher Allgemeine Java-Themen 7
R Assoziativer Speicher welche Unterschiede? Allgemeine Java-Themen 5
S Zugesicherter Speicher der jvm nach Programmstart erhöhen Allgemeine Java-Themen 6
G FIFO Speicher nachbilden Allgemeine Java-Themen 2
G restlichen freien Speicher ermitteln? Allgemeine Java-Themen 3
M Variablen Speicher wieder freigeben ? Allgemeine Java-Themen 9
J Wieviel Speicher maximal? Allgemeine Java-Themen 14
T Sortierter assoziativer Speicher mit Filter Allgemeine Java-Themen 4
L JVM: Speicher wieder für OS freigeben? Allgemeine Java-Themen 5
M Heap Speicher voll bei spezieller Resize Methode Allgemeine Java-Themen 5
R Gibt es eine JVM, die besser mit dem Speicher umgeht? Allgemeine Java-Themen 7
F OutOfMemoryError: Java heap space - Speicher verändern Allgemeine Java-Themen 8
O Datei im Speicher halten Allgemeine Java-Themen 4
S TreeSet benötigt zu viel Speicher Allgemeine Java-Themen 5
J Out Of Memory - Speicher vergrößern? Allgemeine Java-Themen 2
L Nutzt Java bei Start der VM übermäßig viel Speicher? Allgemeine Java-Themen 3
F CPU auslastung wenn Speicher mit -Xmx erhöht Allgemeine Java-Themen 4
S Auslagerungsdatei (Speicher) werde voll Allgemeine Java-Themen 2
G Panel mit vielen Komponenten verbraucht viel Speicher Allgemeine Java-Themen 3
S Speicher Allgemeine Java-Themen 2
m@nu doppelte daten im speicher? Allgemeine Java-Themen 2
G Speicher Allgemeine Java-Themen 3
H wie viel speicher braucht eigentlich ein array? Allgemeine Java-Themen 2
D Speicher der VM für ausführbares Jarfile erhöhen Allgemeine Java-Themen 4
D Eine geladene Klasse aus dem Speicher holen? Allgemeine Java-Themen 9
J in file schreiben frisst den speicher Allgemeine Java-Themen 5
P benötigter Speicher für Objekt Allgemeine Java-Themen 5
D Wieviel Speicher kann die VM verwalten? Allgemeine Java-Themen 18
C Über C/C++ (JNI) angeforderten Speicher wieder frei geben Allgemeine Java-Themen 3
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
B Kostet das speichern von Variablen zusätzlichen speicher? Allgemeine Java-Themen 2
T Speicher für die VM ändern Allgemeine Java-Themen 17
S Static + Speicher + Bytecode etc. Brauche HILFE :/ Allgemeine Java-Themen 11
H Wie Cpu- und Speicher- Auslastung in Java auslesen Allgemeine Java-Themen 4
F Verfügbaren Heap-Speicher setzen Allgemeine Java-Themen 2
C RAM Speicher in Datei auslagern (Java Swapping) Allgemeine Java-Themen 4
S Speicher reservieren Allgemeine Java-Themen 5
R nichtmehr benötigtes BufferedImages aus dem Speicher entfern Allgemeine Java-Themen 4
krgewb Problem mit Umlauten und Eszett bei InputStream Allgemeine Java-Themen 3
Max246Sch Backtracking Problem Box Filler Allgemeine Java-Themen 6
NightVision402 VisualVM Startskript Problem Allgemeine Java-Themen 3
javaBoon86 Email Server Connection Problem Allgemeine Java-Themen 1
F Problem mit PDFBOX Library Allgemeine Java-Themen 1
A Java modul Problem Allgemeine Java-Themen 4
D Read JSON File Problem Allgemeine Java-Themen 9
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
J Problem mit JasperReports Allgemeine Java-Themen 8
M log4j Problem mit jlink Allgemeine Java-Themen 19
8u3631984 Problem beim Mocken von Record Klassen Allgemeine Java-Themen 4
torresbig Website login Problem - Jsoup, wie bisher, klappt nicht! Allgemeine Java-Themen 31
P Selenium . getText Problem Allgemeine Java-Themen 9
A Jar zu Exe Problem Allgemeine Java-Themen 13
sserio Variablen Liste erstellt und ein Problem mit dem Index Allgemeine Java-Themen 6
S Folgendes Problem bei einem Programm Allgemeine Java-Themen 1
stormyark Problem beim Klassen erstellen Allgemeine Java-Themen 1
A Thread.sleep Problem Allgemeine Java-Themen 2
A Problem bei der Nachbarschafttest Allgemeine Java-Themen 11
Splayfer Problem: no main manifest attribute Allgemeine Java-Themen 3
G javamail Problem beim Empfangen von Nachrichten Allgemeine Java-Themen 3
Splayfer JDA Problem mit MessageCounter Allgemeine Java-Themen 0
Splayfer Problem mit BufferedWriter Allgemeine Java-Themen 3
F Streams als Alternative für dieses Problem ? Allgemeine Java-Themen 15
N Maven Problem mit Datenbanktreiber (H2 Embedded) Allgemeine Java-Themen 12
T Problem beim Umwandeln in eine Jar-Datei Allgemeine Java-Themen 3
B Einfach Elemente zweier Arraylisten kreuz und quer vergleichen, min und max Problem? Allgemeine Java-Themen 16
C ArrayList Problem Allgemeine Java-Themen 3
kev34 nim-Spiel problem Allgemeine Java-Themen 1
D Firebase retrieve data Problem, Child Element wird nicht angesprochen Allgemeine Java-Themen 0
G Welches Problem besteht bei den Typparametern? Allgemeine Java-Themen 5
temi Problem mit Aufrufreihenfolge bei Vererbung Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben