SVN 7305: Speicherproblem beim Aktivieren von Schedulern

Hier finden YaCy User Hilfe wenn was nicht funktioniert oder anders funktioniert als man dachte. Bei offensichtlichen Fehlern diese bitte gleich in die Bugs (http://bugs.yacy.net) eintragen.
Forumsregeln
In diesem Forum geht es um Benutzungsprobleme und Anfragen für Hilfe. Wird dabei ein Bug identifiziert, wird der thread zur Bearbeitung in die Bug-Sektion verschoben. Wer hier also einen Thread eingestellt hat und ihn vermisst, wird ihn sicherlich in der Bug-Sektion wiederfinden.

SVN 7305: Speicherproblem beim Aktivieren von Schedulern

Beitragvon Quix0r » Do Nov 04, 2010 10:22 pm

Ich habe ein Problem mit hohem Speicherverbrauch beim Aktivieren von Schedulern gefunden:
- Aktiviere ich mindestens 30-50 Scheduler unter http://localhost:8080/Table_API_p.html? ... er=crawler so steigt der Speicherbrauch enorm an (siehe PerformanceGraph046.png, stark ansteigene blaue Linie, bevor sie nicht mehr von knapp unter 3 GB - Java zugewiesener Speicher - nicht mehr zurueckkommt)
- Ein manueller GC (http://localhost:8080/PerformanceMemory_p.html?gc=) scheint wohl nicht sehr zu helfen
- Erst wenn die Node "eingefroren" ist (also kein freier Speicher mehr vorhanden ist) und danach ein wohl anderer (?) GC ausgefuehrt wird, ist wieder mehr Speicher frei
- Das ganze ist reproduzierbar

Anbei die Grafik und einen Thread-Dump mit jstack erzeugt.
PerformanceGraph046.png
SVN 7305: Nicht mehr freigebbarer Speicher nach Starts von > 30 Schedulern
PerformanceGraph046.png (10.01 KiB) 399-mal betrachtet


Und nachdem ein anderer als der manuell ausloesbare GC lief:
PerformanceGraph047.png
SVN 7305: Nachdem der von YaCy ausgeloeste GC lief (mit dem per Interface ausloesbaren war das bei 5 Versuchen 5x nicht moeglich!)
PerformanceGraph047.png (7.35 KiB) 397-mal betrachtet
Dateianhänge
jstack-with-locks.dump.bz2
SVN 7305: jstack mit Locks
(3.86 KiB) 29-mal heruntergeladen
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN 7305: Speicherproblem beim Aktivieren von Schedulern

Beitragvon Orbiter » Do Nov 04, 2010 11:33 pm

Das aktivieren von schedulern erzeugt keine threads sondern macht lediglich datenbankeinträge. Insofern kann ich mir nicht vorstellen was hier passiert.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: SVN 7305: Speicherproblem beim Aktivieren von Schedulern

Beitragvon Quix0r » Do Nov 04, 2010 11:47 pm

Das war mir beim Posten schon klar, denn das wuerde auf kurz oder lang zu zy hohem Speicherverbrauch fuehren. Somit bin auch ich ueberfragt, was das ausloesen koennte.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: SVN 7305: Speicherproblem beim Aktivieren von Schedulern

Beitragvon Quix0r » So Nov 07, 2010 11:24 pm

Hier mal eine OOM, an zu wenig Speicher liegt es aber nicht, da der Speicherfresser im Aktivieren/Aendern des Schedulers begraben liegt:
Code: Alles auswählen
E 2010/11/07 23:21:59 SERVER command execution, target exception null for client 131.246.103.128
java.lang.reflect.InvocationTargetException
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at de.anomic.server.serverCore$Session.listen(serverCore.java:738)
        at de.anomic.server.serverCore$Session.run(serverCore.java:637)
Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
        at java.lang.StringCoding.decode(StringCoding.java:173)
        at java.lang.String.<init>(String.java:443)
        at java.lang.String.<init>(String.java:515)
        at org.apache.commons.fileupload.disk.DiskFileItem.getString(DiskFileItem.java:395)
        at de.anomic.http.server.HTTPDemon.parseMultipart(HTTPDemon.java:839)
        at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:351)
        at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:235)
        at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:540)
        ... 5 more
E 2010/11/07 23:21:59 HTTPD Unexpected Error. java.lang.OutOfMemoryError
java.lang.OutOfMemoryError: Java heap space
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
        at java.lang.StringCoding.decode(StringCoding.java:173)
        at java.lang.String.<init>(String.java:443)
        at java.lang.String.<init>(String.java:515)
        at org.apache.commons.fileupload.disk.DiskFileItem.getString(DiskFileItem.java:395)
        at de.anomic.http.server.HTTPDemon.parseMultipart(HTTPDemon.java:839)
        at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:351)
        at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:235)
        at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:540)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at de.anomic.server.serverCore$Session.listen(serverCore.java:738)
        at de.anomic.server.serverCore$Session.run(serverCore.java:637)
W 2010/11/07 23:21:59 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
        at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
        at java.lang.StringCoding.decode(StringCoding.java:173)
        at java.lang.String.<init>(String.java:443)
        at java.lang.String.<init>(String.java:515)
        at org.apache.commons.fileupload.disk.DiskFileItem.getString(DiskFileItem.java:395)
        at de.anomic.http.server.HTTPDemon.parseMultipart(HTTPDemon.java:839)
        at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:351)
        at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:235)
        at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:540)
        at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at de.anomic.server.serverCore$Session.listen(serverCore.java:738)
        at de.anomic.server.serverCore$Session.run(serverCore.java:637)

Ich koennte auch nicht mehr Speicher zuweisen, es wuerde meiner Meinung nach eh nur das Problem hinauszoegern und nicht beseitigen.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast