Yacy reagiert nach Stunden/Tagen nicht mehr

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.

Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Kelsar » Mi Dez 07, 2011 1:05 pm

Hallo,

wie im Betreff schon genannt, nach Stunden manchmal auch nach 1-2 Tagen reagiert Yacy nicht mehr. In einem vorher geöffneten Browserfenster läuft noch das "Log"-Fensterchen, aber ansonsten geht nichts mehr. Normal beenden ist dann auch nicht mehr möglich. Das passiert bei verschiedenen Speichereinstellungen und mit verschiedenen VMs (Oracle, icedtea).

Ich kann dann nur den Java-Prozess mit kill -9 abschießen. Es scheint dann so ob Java mehr mit sich selbst als alles andere beschäftigt ist.

Einigen Hinweisen in anderen Threads bin ich bereits gefolgt, aber keine wirkliche Besserung.

Kelsar
Kelsar
 
Beiträge: 5
Registriert: Mi Dez 07, 2011 1:01 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Phiber » Mi Dez 07, 2011 1:50 pm

Tritt bei mir auch ab und an auf, es bleibt dann ein Kern mit 100% ausgelastet und die YaCy Schnittstelle reagiert nicht mehr, auch nicht auf das Stop Script.

Könnte aber daran liegen dass ich die Einstellungen zu hoch setze, oder die andere These ist ein Problem mit dem Status Informationsfenster im Adminbereich über längere Zeit, falls man das geöffet lässt. Leider ist das ganze nicht so einfach zu reproduzieren.

Ohne die Schnittstelle müsste man YaCy im Debug Modus in einer Shell starten, um dann einen Thread Dump ausführen zu können wenn sich YaCy aufgehängt hat, richtig?
Phiber
 
Beiträge: 96
Registriert: So Okt 05, 2008 9:04 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Dovahkiin » Mi Dez 07, 2011 2:29 pm

Das Problem beobachte ich auch schon seit der Zeit, seitdem ich Yacy nutze (ca. 1-2 Wochen). Lässt sich dann nur noch mithilfe des Kill-Scripts zum Beenden bewegen (Linux).
Ich glaube allerdings nicht, dass das mit dem offenen Statusfenster zusammenhängt, da es auch zu diesem Problem kommt, wenn ich nicht auf der Oberfläche bin.
Dovahkiin
 
Beiträge: 1
Registriert: Mi Dez 07, 2011 2:24 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon bluumi » Mi Dez 07, 2011 3:59 pm

;)
Mein Tip ist schlicht und einfach, gebt Yacy mehr Zeit.

Setzt bei "Delay between busy loops" sowohl bei Remote- wie bei Local Crawl mal einen höheren Wert ein. z.B. doppelt so lange warten.
Klar ist der Crawl dann deutlich langsamer, aber mein Peer lief früher 2-3 Tage stabiel, nach dem verdoppeln des Werts läuft er schon über 6 Tage.

Fraglich ist natürlich wo bei euch der Engpass ist :-)
bluumi
 
Beiträge: 388
Registriert: Mi Okt 08, 2008 7:27 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Mi Dez 07, 2011 5:12 pm

Hallo,

wenn YaCy 'nicht mehr reagiert', schreibt es noch etwas in das Logfile?
(DATA/log/yacy00.log)

Darin sollte sich eigentlich die Ursache finden lassen.

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Vega » Mi Dez 07, 2011 6:08 pm

Ich hatte das auch schon, auch Michaels Peer war schon betroffen, leider haben wir noch keine Ahnung wo das her kommt.... Im Log steht nichts, DHT/Indexverteilung läuft fröhlich weiter, aber Webinterface ist weg....

Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Kelsar » Do Dez 08, 2011 1:17 pm

Leider konnte ich das jetzt mit den aktuellen Versionen nicht nachstellen, aber dafür ist ein viel blöderes Problem nun da. Mit den 9000er Versionen scheint Yacy beim ermitteln des freien Speichers den von Caches belegten Speicher als belegt anzusehen ist, was dazu führt, dass der Speicher egal bei welcher Einstellung relativ zügig als voll angesehen wird.

Drop ich die caches (echo 1 > /proc/sys/vm/drop_caches) dauert es entsprechend dem neuaufbau der Caches länger.

Kelsar
Kelsar
 
Beiträge: 5
Registriert: Mi Dez 07, 2011 1:01 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Do Dez 08, 2011 4:13 pm

Hallo,

bzgl. des 'Speicherproblems':
Von welcher Version hast Du nach 9000 aktualisiert und die Veränderung bemerkt?
(In letzter Zeit ist eigentlich nur eine kleiner Fehlerbehebung am Speichermanagement geändert worden)
Welche 'Memory Strategy' nutzt der Peer (Standard / Generation - siehe /PerformanceMemory_p.html)?

Die jvm verwaltet seinen zugewiesenen Speicher weitgehend eigenständig - unabhängig vom darunter liegenden System.
Das dropen des System-chaches sollte eigentlich keinen Einfluss haben, es sei denn das System hat schon Mühe den der
jvm zugewiesenen Speicher zu realisieren.

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Kelsar » Do Dez 08, 2011 4:23 pm

Von 1378, gehe ich jetzt zurück (über das Weninterface) ist es da dort lustigerweise genauso.

Komplett neu zu installieren habe ich noch nicht probiert.

Eingestellt was "Generation Memory...", ich hab nun mal auf Standard gewechselt, mal sehen.

Der Server selber hat 4GB-RAM, yacy habe ich aktuell nur 512MB zugewiesen. Wenn Yacy läuft zeigt es <50MB Speicher zur Verfügung an(Das ist vermutlich was der VM vom zugewiesenen noch zur Verfügung steht), es sind aber noch >300MB auf dem Server frei und er hat >2GB an Caches, die ja auch zur Verfügung ständen.

Auf dem Server läuft aktuell noch ein LXC-Container, indem eine Postfix/Dovecot Instanz läuft, das braucht aber weniger als <200MB Speicher.
Kelsar
 
Beiträge: 5
Registriert: Mi Dez 07, 2011 1:01 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Do Dez 08, 2011 4:40 pm

Hallo,

wenn YaCy und damit der jvm 512MB zugewiesen sind, kann es sich auch nur innerhalb dieser 512MB bewegen.
Auf dem Server noch freier Speicher oder Systemchaches haben damit nichts zu tun.

Die 'Generation Memory Strategy' geht viel konservativer ans Werk und wird früher ein Mangel an Speicher anzeigen,
um Fehlern infolge von Speichermangel zuvor zu kommen.

Könnte es sein das schlicht der Index des Peers soweit angewachsen ist das nun nunmal 512MB eng werden?

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Kelsar » Do Dez 08, 2011 4:52 pm

Natürlich möglich, aber vorher hatte er sich auch nicht daran gestört, wenn da 3MB frei stand.

Ich hab den Speicher gerade mal erhöht, mal sehen was dabei rauskommt.
Kelsar
 
Beiträge: 5
Registriert: Mi Dez 07, 2011 1:01 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Vega » Sa Dez 10, 2011 1:09 am

Hallo,

Meiner Meinung nach liegt es nicht am Speicher, ich habe der JVM 4 GB zugewiesen und trotzdem habe ich den Effekt das YaCy über die Weboberfläche nicht mehr bedienbar ist, das Logfile aber zeigt das weiter DHt usw. laufen. ---- > Bug, siehe: http://bugs.yacy.net/view.php?id=104
Vielleicht kann noch jemand mal mit kill -3 einen Dump machen und dem Bug anhängen.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Sa Dez 10, 2011 1:48 am

Hallo,

Dein Anhang im BugTracker, Vega sieht ja eher nach einem total gelangweilten Peer aus - da kann ich leider auch keine Ursache draus ersehen.
Wie steht es um die Menge der Verbindungen (z.B. aus netstat) im Vergleich zu dem konfigurierten Maximum?

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Sa Dez 10, 2011 4:38 am

Ich glaube bei mir geht der Peer in die knie wegen der snippet generierung, welche den Speicherverbrauch oft von um die 500 mb auf über 4 gigabyte wachsen kann und so den GC für (fast) immer und ewig laufen lässt . hier hab ich mehr daüber geschreiben: viewtopic.php?f=5&t=3436
Ich hänge allerdings hinter dem search. yacy.com loadbalancer.
Ich habe dies jetzt "gelöst" in dem ich den peer jede stunde neustart.
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Vega » So Dez 11, 2011 10:32 pm

Hallo,
der Peer war deshalb gelangweilt weil er schon seit mindestens einem halben Tag im "Deadlock" hing, also Webinterface nicht errreichbar, Log lief noch weiter, immer mindestens 100% CPU Last... da hatte sich also schon irgendetwas verklemmt, ich hatte gehofft man könnte das im Dump sehen....
Wenn nicht, mit welchem Werkzeug soll ich das dann beobachten ?

Gruß,
Thomas

sixcooler hat geschrieben:Hallo,

Dein Anhang im BugTracker, Vega sieht ja eher nach einem total gelangweilten Peer aus - da kann ich leider auch keine Ursache draus ersehen.
Wie steht es um die Menge der Verbindungen (z.B. aus netstat) im Vergleich zu dem konfigurierten Maximum?

cu, sixcooler.
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Kelsar » Mo Dez 12, 2011 12:58 pm

Code: Alles auswählen
E 2011/12/11 03:27:52 BLOCKINGTHREAD Runtime Error in serverInstantThread.job, thread 'java.lang.reflect.Method.parseDocument.22': null; target exception: Java heap space
E 2011/12/11 03:29:36 UNCAUGHT-EXCEPTION Thread Thread-18919: Java heap space
E 2011/12/11 03:48:38 FILEHANDLER INTERNAL ERROR: java.lang.reflect.InvocationTargetException:null target exception at /opt/yacy/htroot/ViewImage.class: java.lang.OutOfMemoryError: Java heap space:Java heap space; java.awt.graphicsenv='sun.awt.X11GraphicsEnvironment'
E 2011/12/11 03:53:34 UNCAUGHT-EXCEPTION Thread yacySearch_mobee: Java heap space
E 2011/12/11 03:54:01 UNCAUGHT-EXCEPTION Thread yacySearch_SorenStoutner: Java heap space
E 2011/12/11 03:56:48 BLOCKINGTHREAD Runtime Error in serverInstantThread.job, thread 'java.lang.reflect.Method.transferDocumentIndex.6': null; target exception: Java heap space
E 2011/12/11 04:05:26 UNCAUGHT-EXCEPTION Thread yacySearch_thetis-wyae-de: Java heap space
E 2011/12/11 04:06:53 UNCAUGHT-EXCEPTION Thread yacySearch_ttux: Java heap space
E 2011/12/11 04:10:31 UNCAUGHT-EXCEPTION Thread Thread-20248: Java heap space
E 2011/12/11 07:06:56 UNCAUGHT-EXCEPTION Thread Thread-20075: Java heap space
E 2011/12/12 00:51:34 SERVER command execution, target exception null for client 98.244.55.92
E 2011/12/12 00:46:02 UNCAUGHT-EXCEPTION Thread Thread-20116: Java heap space
E 2011/12/12 02:46:57 HTTPD Unexpected Error. java.lang.OutOfMemoryError


Die Fehlermeldungen aus dem letzten aktiven LOG-File, welches übrigens immer 00 ist.
Kelsar
 
Beiträge: 5
Registriert: Mi Dez 07, 2011 1:01 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Phiber » Mo Dez 12, 2011 5:57 pm

Mein Peer friert regelmässig ein wenn ich ihn über das Wochenende laufen lasse, meist irgendwann am Sonntag ( am Freitag Vormittag neu gestartet ). Hat 6 GB Memory für die JVM zugewiesen und die ganze CPU für sich.
Habe dann heute mal das Log angeschaut, leider keine Fehlermeldungen gefunden. Man sieht nur normalen Betrieb bis zu einem Punkt wo dann nichts mehr läuft ausser die regelmässige Überprüfung nach Updates.
Einstellungen sind ganz normal 200% crawl, Sun jre 1.6.0_29-b11 64 bit, auf ner WIn7 64bit Maschine, und YaCy ist halt auch hinter dem Load Balancer der offiziellen Suche.
Phiber
 
Beiträge: 96
Registriert: So Okt 05, 2008 9:04 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Di Dez 13, 2011 6:44 pm

Mein peer scheint jetzt stabil zu laufen ( über 12 stunden uptime ), Ich habe jegliche GC einstellungen aus dem startscript herausgenommen ( das debian packet benutzt den UseConcMarkSweepGC ) da diese dazu gefürt haben entweder den peer je nach einstellung ( z.b. generation strategy ) komplett blockiert oder vorgegaukelt haben 0 mb ram zu verfügung zu haben ( auch wenn in PerformanceMemory_p.html hunderte frei waren ).
in PerformanceMemory_p.html habe ich das häckchen bei use Standard Memory Strategy entfernt und nutzte jetzt die Generation Memory Strategy. Wie ich es verstehe, versucht diese das Java's GC layout auszunutzen ( eden, survivor, old gen ) und scheint auch früher die einzelnen Bereiche zu leeren ( ich tippe drauf, dass das meiste eden nicht überlebt, da die resultate sowieso auf den hdd geschrieben werden oder zur ausgabe und danach nicht mehr im speicher gebraucht werden).
Und also letztes glaube ich is es wichtig die DHT aktivität einzuschränken, da nachdem ich sie wieder eingeschaltet hatte mein peer nach 10 minuten wieder der speicher ausging und somit in der GC festhing. Dies scheint auf Performance_p.html mit der einstellung Use Default Profile: Prefer DHT und dies auf 25 % einzuschränken. bei 50 oder gar 100% war mein peer nach kurzer zeit wieder festgefahren.

td;dr:
- Jegliche GC einstellungen aus dem starsrcipt nehmen
- in PerformanceMemory_p.html häckchen bei Standard Memory Strategy weg
- in Performance_p.html Use Default Profile: Prefer DHT , 25%
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Mi Dez 14, 2011 2:20 am

Hallo,

hey, da hat sich ja mal jemand mit der Generation-Memory-Strategy auseinandergesetzt - cool!
Das im Debian-Packet UseConcMarkSweepGC default ist, war mir doch glatt entfallen.
Darüber welcher GC am besten mit YaCy harmoniert gibt es verschiedene Meinungen.

Der größte Unterschied zwischen der Standard- und der Generation-Memory-Strategy ist die Betrachtung des Speichers entweder als Ganzes oder eben in seinen Generation (eden, survivior, old).
Da berücksichtigt wird, das Zeuch das noch alive ist, von einer in die Nächste Generation geschoben wird, kann es dazu kommen das recht früh zu wenig speicher angezeigt wird, weil eben auch noch Platz bleiben muss den Potentiellen Neuzugang aufzunehmen.
Ist also z.B. im old-Gen weniger Platz als im survivior noch alive ist, wird schon mal Mangel angedeutet. Denn nun noch den Eden vollzumüllen wird nicht gut enden :-)
Der Eden kann ja aber wiederum recht üppig sein (was er auch sollte), und so kann es trotz noch freiem Speicher zu Speicherknappheit kommen.

@flami:
ich bin auch ein Freund der jvm-defaults :-)
ein paar Parameter sind aber wirklich zu empfehlen: "-server -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8"
(in wie weit diese eh schon im default sind hängt vom System ab, schaden tun sie nicht)

In diesem Thread sind meiner Meinung nach mind. 2 unterschiedliche Probleme die Ursache.
Leider sind sie nicht so einfach auszumachen.
Halte uns bitte auf dem Laufenden wie es mit Deiner jetzigen config so geht.

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Mi Dez 14, 2011 2:14 pm

naja man könnte sagen, dass marksweep weil es ja gedacht ist weniger stop the world aufräumarbeiten zu haben, es für YaCy besserr ist, weil es somit eigentlich nicht zu verzögerungen im UI wegen der GC kommen kann. Allerdings glaub ich ist das vollkommen egal, da YaCy sowieso seine Zeit braucht um die Suchergebnisse zu sammeln, ob da jetzt eine halbe Sekunde dazukommt weil gerade ein full GC auf 4 gigabyte ram läuft ist dann auch egal . Und als ich mir die GC logs angeschaut hab, hat der default Throughput Collector ( wegen -server ) auch so um die 98% throughput ( also die Zeit wo nicht im GC hängt ).
Ach ja desweiteren spuckt Java Fehler aus wenn marksweep an ist und die Generation strategy genutzt wird.

Na ich hab -server und das andere Zeuch noch in in dem startscript gelassen , hab Xmx auf 2 gigabyte ( Xms ist ziemlich egal da es ca 2 sekuden braucht bis wir alles ausgenutzt haben ) . Da scheint noch ein -XX:+UseAdaptiveSizePolicy mit drin rumzuliegen, allerdings kann ich darüber nur was in den java 1.4 docs was finden , und in den 1.5/1.6 steht kein wort mehr darüber. nach einer Seite von IBM ist dies eh das default.
Bisher läuft YaCy glücklich vor sich hin ( woohoo über 24 stunden schon) , und auch wenn manchmal wieder explosionsartig 2000 ppm auftauchen scheint das alles kaum einfluss auf den speicherverbrauch zu haben. mit scheint es so, also ob YaCy manchmal zu viel auf einmal versucht und damit den speicher auffüllt, allerdings keine out of memory fehler bekommt, weil wahrscheinlich grossteil der objekte sowieso nur sehr kurze Zeit überleben . Weil es kein OOM Fehler bekommt muss die GC einspringen um Platz zu machen. Dummerweise will Yacy so viele neue kurzlebige objekte anlegen, dass der speiceh sofort wieder voll ist, Gc muss laufen, yacy füllt.... so dass nur noch ein Bruchteil der CPU zeit für Yacy benutzt wird und das meiste für die GC . In wiefern dies mit den "use 25%" Performance Einschränkungen behoben wird weiss ich nicht, aber anders als mit 100% ist YaCy eben nicht nach 10 minuten festgefahren. Es gibt noch imer Phasen bei denen die ppm hochschiessen und die GC öfters anspringt, allerdings scheint das im edenspace zu passiern und auch weit weg von dem speicher limit( vieleicht hatte ich auf nur sehr viel Glück )

naja ich habe das teil schon ne weile beobachtet. hier gibts mehr dazu:
viewtopic.php?f=5&t=3436
heir auch mit GC logs, die ein "speicher voll, GC läuft nonstop" finale haben.
viewtopic.php?p=23555#p23555


Hier ist übrigens das Zeug über die GC :
http://www.oracle.com/technetwork/java/ ... 38395.html
http://java.sun.com/docs/hotspot/gc5.0/ergo5.html
http://publib.boulder.ibm.com/infocente ... parms.html


edit: hat sich jetzt nach 1.5 tagen festgefahren. ich tippe mal wieder drauf, dass der speicher ausging .
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Orbiter » Mi Dez 14, 2011 10:39 pm

he jungs eure Erfahrung muss unbedingt in den Code rein! am Startscript wurde schon viel zu lange nix mehr gemacht.
Bitte einen Patch vorschlagen oder gleich machen, das baue ich nur zu gerne ein.
Orbiter
 
Beiträge: 5792
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Mi Dez 14, 2011 10:51 pm

Hallo,

wie schon gesagt - dazu wird es super viele Meinungen geben, welcher GC und welche Parameter am besten zu YaCy passen.

Ich würde mit "-server -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8" möglichst viel default von der jvm belassen. Die Devs der jeweiligen jvm wissen in der Regel was gute Paramter sind und setzen diese per default.

Andere GCs oder sonstiges würde ich in dem Bereich der Peer-Betreiber sehen.
Ich selber habe z.B. Paramter für concurentGC oder G1 auskommentiert im Startscript - ist das eine Lösung?

cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Do Dez 15, 2011 12:15 am

ähm keine ahnung wo patches hinsollen.

so was ?

Code: Alles auswählen
@@ -33,7 +33,15 @@
# Default niceness if not set in config file
NICE_VAL=0

-JAVA_ARGS="-server -Xss256k -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=1024m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseGCOverheadLimit -XX:+UseAdaptiveSizePolicy -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8"
+JAVA_ARGS="-server -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8"
+#memsettings
+#JAVA_ARGS="$JAVA_ARGS -Xss256k -XX:MaxPermSize=256m -XX:ReservedCodeCacheSize=1024m"
+#GC logs
+#JAVA_ARGS="$JAVA_ARGS -Xloggc:/var/log/yacy/gc.log -XX:+PrintGCDetails"
+#GC settings
+#JAVA_ARGS="$JAVA_ARGS -XX:+DisableExplicitGC -XX:+UseParallelGC -XX:+UseParallelOldGC"
+
+
#check if system supports large memory pages and enable it if possible
HUGEPAGESTOTAL="$(cat /proc/meminfo | grep HugePages_Total | sed s/[^0-9]//g)"
if [ -n "$HUGEPAGESTOTAL" ] && [ $HUGEPAGESTOTAL -ne 0 ]



das auf das /etc/init.d/yacy aus dem debian paket anwenden
Also pluspunkt, es ist jetzt etwas einfacher seine eigenen GC einstellungen reinzupappen.
( hehe da sieht man auch mit welcher gc einstellung ich das letzte mal rumgebastelt hab )



edit :

Oh es sieht so aus als hätte ich endlich mal den Fehler gefunden, oder einer der Fehler, welcher den peer in einen fast ewigen
Code: Alles auswählen
W 2011/12/15 14:29:16 FILEHANDLER Unexpected error while processing query.
Session: Session_88.192.247.200:22297#0_POST /yacy/transferURL.html HTTP/1.1
Query:   /yacy/transferURL.html
Client:  88.192.247.200
Reason:  not enough memory available for request. request.getContentLength() = -1, MemoryControl.available() = 1048576
java.io.IOException: not enough memory available for request. request.getContentLength() = -1, MemoryControl.available() = 1048576
        at de.anomic.http.server.HTTPDemon.parseMultipart(HTTPDemon.java:824)
        at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:374)
        at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:253)
        at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:530)
        at sun.reflect.GeneratedMethodAccessor17.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:757)
        at de.anomic.server.serverCore$Session.run(serverCore.java:651)

danach hat sich der peer noch mal gefangen bekommen , aber nich für lange, und hat dann :
Code: Alles auswählen
W 2011/12/15 14:45:31 FILEHANDLER Unexpected error while processing query.
Session: Session_85.214.59.49:51813#0_POST /yacy/transferRWI.html HTTP/1.1
Query:   /yacy/transferRWI.html
Client:  85.214.59.49
Reason:  not enough memory available for request. request.getContentLength() = -1, MemoryControl.available() = 1048576
java.io.IOException: not enough memory available for request. request.getContentLength() = -1, MemoryControl.available() = 1048576
        at de.anomic.http.server.HTTPDemon.parseMultipart(HTTPDemon.java:824)
        at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:374)
        at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:253)
        at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:530)
        at sun.reflect.GeneratedMethodAccessor17.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:757)
        at de.anomic.server.serverCore$Session.run(serverCore.java:651)


es scheint, als ob ein ganzer stoss transfer url oder RWI aufgerufen wurde, die alle nicht genug specher zur verfügung haben , und der Peer in einen ewiges GC gewerkel werfen.

das sieht dann so aus:
PerformanceGraph.png
PerformanceGraph.png (9.55 KiB) 5576-mal betrachtet

Dort wo der Strich fast gerade ist , hängt der Peer Fest im GC der leider fast nichts frei machen kann, wharscheinlich, weil keiner der threads fortschritte macht und somit auch kaum objeckte gelöscht werden können.

In diesem Fall hat sich der Peer noch einmal gefangen, was gut dann die wesentlich gezacktere linie am ende zeigt. wo der GC auch tatsächlich Speicher Frei machen kann.

Leider ist der peer jetzt so fest gefahren, dass ich das performance memory teil nicht mehr aufrufen kann. Ich habe auch noch die kompletten logs hinzugefügt. das erste mal ins Stocken kommt der peer um 14:29:16 un das 2. mal so um 14:45:30 , beim zweiten mal hing er dann fest und habe ihn neuugestartet. auch wenn noch einige teile des Peer liefen aber langsam alles zu einem stillstand kam
Dies ist übrigens mit 100% prefer DHT passiert

yet another edit:
Peer ist jetzt nach 10 minuten oder so festgefahren, gleiche error message. diesmal 25% prefer DHT. allerdings ist das Netzwerk heute um ca 100 leute grösser (ca 550 heute ) als gestern wo alles super lief.
Dateianhänge
yacy02.log.zip
(163.76 KiB) 77-mal heruntergeladen
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Vega » Sa Dez 17, 2011 1:23 pm

Ich habe ebenfalls mal nur mit den Standardparametern der JVM + "-server -Djava.net.preferIPv4Stack=true -Djava.awt.headless=true -Dfile.encoding=UTF-8" meinen Peer gestartet, Ergebniss ist genau wie vorher das die Kiste nach 24 Stunden "weg" ist...
Das letzte Stück vom Log sieht so aus:

Code: Alles auswählen
D 2011/12/16 02:14:04 YACY_SEARCH Processing 131 bytes / 1 words / 1 entries from GuTqcE_nEpAA:sixcooler1/1.0100905
I 2011/12/16 02:14:04 YACY_SEARCH Received 1 RWIs, 1 Words [sxl6iqhIGluW .. sxl6iqhIGluW], processed in 0 milliseconds, 4083180168852394936, blocked 0, requesting 0/1 URLs from GuTqcE_nEpAA:sixcooler1/1.0100905
I 2011/12/16 02:14:05 HeapReader saturation of text.index.20111216011338742.blob.vGglkiyOe1wX.idx: keylength = 6, vallength = 4, possible saving: 15 MB
I 2011/12/16 02:14:05 HeapReader using a dump of the index of /media/work/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20111216011338742.blob.
I 2011/12/16 02:14:05 BLOBArray merged text.index.20111216011323738.blob with text.index.20111216010626227.blob into /media/work/yacy/DATA/INDEX/freeworld/SEGMENTS/default/text.index.20111216011338742.blob
^C
thomas@sam01:~$ tail --f=name /media/work/yacy/DATA/LOG/yacy00.log
I 2011/12/17 07:11:06 YACY remote search: peer SaynRauliee sent 20/30 references for joined word queries
I 2011/12/17 07:11:06 YACY remote search: peer SaynRauliee sent 1 topics
W 2011/12/17 07:12:03 StackTrace Java heap space
java.lang.OutOfMemoryError: Java heap space
E 2011/12/17 07:12:32 UNCAUGHT-EXCEPTION Thread yacySearch_User: Java heap space
java.lang.OutOfMemoryError: Java heap space

java.lang.OutOfMemoryError: Java heap space
W 2011/12/17 07:22:42 BusyThread Thread 'de.anomic.crawler.CrawlQueues.remoteCrawlLoaderJob' runs short memory cycle. Free mem: 0 KB, needed: 12288 KB
W 2011/12/17 07:55:16 BusyThread Thread 'de.anomic.crawler.CrawlQueues.coreCrawlJob' runs short memory cycle. Free mem: 0 KB, needed: 12288 KB


JVM ist:
Code: Alles auswählen
java version "1.6.0_26"
Java(TM) SE Runtime Environment (build 1.6.0_26-b03)
Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02, mixed mode)


Und auf dem Peer ist "Generation Memory Strategy" aktiviert, als Default Profil ist DHT, 10% aktiviert...der JVM sind 4096MB Speicher zugewiesen.

Top zeigt folgendes:
29013 thomas 30 10 5171m 4.5g 12m S 100 57.9 2063:12 java

Also hängt irgendein Thread in YaCy oder der GC bekommt keinen Speicher mehr frei. Nach dem Neustart ist wieder alles in Ordnung und die 4096MB Speicher sind ausreichen.

Gruß,
Thomas
Vega
 
Beiträge: 824
Registriert: Mi Jun 27, 2007 3:34 pm
Wohnort: Dresden

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon sixcooler » Sa Dez 17, 2011 9:41 pm

Hallo,

wollt nur kurz mal sagen das ich diesen Thread zwar verfolge - aber gerad zu wenig Zeit hab mich damit wirklich auseinander zu setzen.
Ich hoffe aber das Ändert sich bald.

Habt Ihr unter /IndexControlRWIs_p.html die Limitierung laufen?
Dieses wirkt zwar leider erst nach einiger Zeit, wenn die Blobs gemerged wurden - hilft aber Speicher von einigen Tasks zu reduzieren.

Cu, sixcooler.
sixcooler
 
Beiträge: 494
Registriert: Do Aug 14, 2008 5:22 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » So Dez 18, 2011 11:52 am

Ich hab dieses Limit mal angeschaltet.

Es scheint mit wenn mehr als 500 Peers im Netzwerk sind bekomm ich die Probleme.
Desweiteren werd ich jetzt mal ne weile lang weg sein, das einzige was meinen Peer jetzt neustarted wäre ein update, mal kucken ob es 2 wochen uptime schafft.
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Huppi » So Dez 18, 2011 3:30 pm

Auch bei mir ist immer nach einiger Zeit das Webinterface weg. Ich bin noch nicht auf Ursachen-Suche gegangen.
Huppi
 
Beiträge: 898
Registriert: Fr Jun 29, 2007 9:49 am
Wohnort: Kürten

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Quix0r » Mi Dez 28, 2011 2:38 am

Eventuell bringt es etwas, das Limit fuer die erlaubten zu startenden Prozesse anzuheben:
Code: Alles auswählen
#limit user processes per user to 150
* soft nproc 1024
* hard nproc 1500
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Fr Dez 30, 2011 2:12 am

so da binsch wieder, Yacy Webinterface hat sich festgefahren, Lustigerweise aber ist nur 3% cpu auslastung , und auch sonst scheint alles in ordnung, denn laut den logs scheint alles glücklich wieter zu laufen :/. Weil ja das webinterface nicht mehr geht ( also all diese requestrwi.html .... oder wie sie nich mal hiessen), ist mein peer jetzt nicht mehr von aussen erreichbar, und sagt er sei jetzt Junior .
Bin jetzt recht ratlos. So weit scheint alles nur das unausweichliche bestenfalls herauszuzögern.

meine VM kann ca 2000 prozesse starten, ich hoffe mal das reicht. (ulimit is auch "unlimited")
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Quix0r » Sa Dez 31, 2011 10:25 pm

Also hast du 2000 fuer nproc eingestellt? Das sollte dann defintiv reichen und eine Fehlerquelle geschlossen haben, da bei mir dies der Fehler war, es klappte die Suche (selbst lokale ohne Remote-Peers) nicht mehr, da Java nicht genuegend Prozesse (wegen der zu starken Limitierung) starten konnte.
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Lotus » So Jan 01, 2012 10:47 am

Quix0r hat geschrieben:Also hast du 2000 fuer nproc eingestellt? Das sollte dann defintiv reichen und eine Fehlerquelle geschlossen haben, da bei mir dies der Fehler war, es klappte die Suche (selbst lokale ohne Remote-Peers) nicht mehr, da Java nicht genuegend Prozesse (wegen der zu starken Limitierung) starten konnte.

Ob das überhaupt von Relevanz ist, kann man sicherlich am Kernel-Log sehen.
http://www.docs.hp.com/en/939/KCParms/K ... Nproc.html
When the total number of processes in the system is larger than nproc, the system issues these messages:
At the system console:
proc: table is full
Also, if a user tries to start a new process from a shell, the following message prints on the user's terminal:
no more processes
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon flami » Do Jan 05, 2012 4:17 am

yep nichts in limits.conf ( also das equivalent zu : #* soft nproc 150 ;) )
Desweiteren wie gesagt hat ulimit auch "unlimited" auf der node ( nicht vm) . Die maximale Anzahl Prozesse ist von OpenVz in der virtuellen Machine eben auf etwas über 2000 ( genau stehts in der config ) .
Die vm berichtet auch von 0 mal das limit erreicht zu haben , und das maximum war 863 Prozesse.
numproc 53 863
Allerdings scheint mir ein paar mal der speicher ausgangen zu sein. Das könnte aber noch überreste sein von der ersten tests. Ich starte die vm mal neu , dan müssten auch die counter wieder bei 0 anfangen.

als Übergangslösung kugg ich mal was mit Nagios zu machen damit ich nicht selbst immer kucken muss ob das ding down ist.
Es scheint auch jetzt öfters mal die frontpage anzeigen zu können aber dann beim laden von z.b. admin panel oder suchergebnissen sich fest zu fahren.
flami
 
Beiträge: 19
Registriert: Di Nov 29, 2011 9:57 am

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Jazzy » Do Feb 09, 2012 5:05 pm

Ich habe zwei Peers auf dem selben Rechner laufen: Einen kleinen mit 30Mio Links auf einer SSD-Platte und einen grösseren mit 80Mio Links auf einer normalen Festplatte, und bei dem grösseren kommt es auch mehr oder weniger regelmässig vor, dass er nicht mehr übers Webinterface erreichbar ist, die Log-Dateien aber weiterhin beschrieben werden.

Die beiden folgende Fehlermeldungen kommen mehrmals darin vor. Ich habe aber keine Ahnung, ob das überhaupt etwas mit dem genannten Problem zutun hat. Ich bin kein Entwickler.

Code: Alles auswählen
E 2012/02/09 10:56:42 FILEHANDLER INTERNAL ERROR: java.lang.reflect.InvocationTargetException:null target exception at /media/Yacy/Yacy2/yacy/htroot/yacy/search.class: java.lang.NullPointerException:null
java.lang.reflect.InvocationTargetException
   at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
   at de.anomic.http.server.HTTPDFileHandler.invokeServlet(HTTPDFileHandler.java:1380)
   at de.anomic.http.server.HTTPDFileHandler.doResponse(HTTPDFileHandler.java:929)
   at de.anomic.http.server.HTTPDFileHandler.doPost(HTTPDFileHandler.java:253)
   at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:530)
   at sun.reflect.GeneratedMethodAccessor6.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:757)
   at de.anomic.server.serverCore$Session.run(serverCore.java:651)
Caused by: java.lang.NullPointerException
   at net.yacy.search.query.SearchEvent.<init>(SearchEvent.java:219)
   at net.yacy.search.query.SearchEventCache.getEvent(SearchEventCache.java:190)
   at search.respond(search.java:321)
   ... 12 more


Code: Alles auswählen
E 2012/02/09 12:39:53 HTTPD Unexpected Error ... (CRLF expected at end of chunk: cr != 54), client = 217.255.170.105
java.io.IOException: CRLF expected at end of chunk: cr != 54
   at de.anomic.http.server.ChunkedInputStream.readCRLF(ChunkedInputStream.java:177)
   at de.anomic.http.server.ChunkedInputStream.nextChunk(ChunkedInputStream.java:188)
   at de.anomic.http.server.ChunkedInputStream.read(ChunkedInputStream.java:148)
   at de.anomic.http.server.ChunkedInputStream.read(ChunkedInputStream.java:168)
   at de.anomic.http.server.ChunkedInputStream.exhaustInputStream(ChunkedInputStream.java:449)
   at de.anomic.http.server.ChunkedInputStream.close(ChunkedInputStream.java:426)
   at de.anomic.http.server.HTTPDemon.POST(HTTPDemon.java:547)
   at sun.reflect.GeneratedMethodAccessor6.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:757)
   at de.anomic.server.serverCore$Session.run(serverCore.java:651)


Falls ihr die kompletten Log-Dateien benötigt, kann ich diese noch nachreichen.
Jazzy
 
Beiträge: 36
Registriert: Mo Okt 31, 2011 5:29 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Quix0r » Fr Feb 10, 2012 4:08 pm

Fuer beide wuerde ich dir vorschlagen, auf die neuste Entwickler-Version (rc1/master) zu wechseln, das geht bequem per Web-Interface, einfach runterladen, installieren und neustarten. Ich kann die Quellcodezeilen mit ohne meine Aenderungen nicht mehr im Code auffinden (falsche Zeilennummern, da meine Vermutung, dass du eine aeltere Version nutzt).

Aber um deinen eigentlichen Grund zu beantworten, ich kann nicht genau sagen, weshalb (auch mein Peer leidete darunter, bis ich den Resource-Manager erweitert habe) der Peer einfriert und angeblich keinen Speicher mehr frei hat. Ich kann nur wage vermuten, dass noch zu viele nicht bereinigte Java-Objekte sich im Heap (Java's eigener Speicher) befinden, da das mit zu wenig erlaubte Threads bereits beseitigt ist.

Ich habe dann den Resource-Manager so erweitert, dass dieser MemoryControl.gc(); immer alle 10-20 mal ausfuehrt, das hat meinen Peer zwar jedes Mal fuer zirka eine Sekunde eingefroren, der Peer bleibt aber nun lange erreichbar. Natuerlich ist dies nur uebergangsweise eine Loesung (da es erstmal so klappt), auf Dauer sollten weniger "nicht aenderbare" (immutable) Java-Objekte vermieden werden, was ich fuer den waren Grund des Volllaufens halte - auch wenn Orbiter hier schon viel optimiert hat.

Ich kann das jetzt weiter erlaeutern, wenn du willst? :mrgreen: ;)
Quix0r
 
Beiträge: 1345
Registriert: Di Jul 31, 2007 9:22 am
Wohnort: Krefeld

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Jazzy » Di Feb 14, 2012 11:23 pm

Wollte mich nur noch kurz für die Infos bedanken.

Quix0r hat geschrieben:Fuer beide wuerde ich dir vorschlagen, auf die neuste Entwickler-Version (rc1/master) zu wechseln

Ich dachte die Stable-Versionen sind stabiler als die Dev-Versionen!?

Quix0r hat geschrieben:Ich kann das jetzt weiter erlaeutern, wenn du willst? :mrgreen: ;)

Nein danke, das ist zu hoch für mich.
Jazzy
 
Beiträge: 36
Registriert: Mo Okt 31, 2011 5:29 pm

Re: Yacy reagiert nach Stunden/Tagen nicht mehr

Beitragvon Quix0r » Fr Feb 24, 2012 3:36 pm

Jazzy hat geschrieben:Wollte mich nur noch kurz für die Infos bedanken.

Keine Ursache. :)

Jazzy hat geschrieben:
Quix0r hat geschrieben:Fuer beide wuerde ich dir vorschlagen, auf die neuste Entwickler-Version (rc1/master) zu wechseln

Ich dachte die Stable-Versionen sind stabiler als die Dev-Versionen!?

Da muss ich zugegebenermassen etwas passen, das weiss Orbiter besser Bescheid. Die Dev-Version ist definitiv neuer und hat vielleicht Bugs ausgemerzt, die noch in der "Stable" doch noch drinne waren. Einfach mal seine Meinung dazu abwarten. Aber mal mit separaten Datensack (in separates Verzeichnis entpacken) ausprobieren kann mal Sinn machen, um die Ursache einzugrenzen.

Jazzy hat geschrieben:
Quix0r hat geschrieben:Ich kann das jetzt weiter erlaeutern, wenn du willst? :mrgreen: ;)

Nein danke, das ist zu hoch für mich.

Okay. :)
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 2 Gäste