computeSnippet...

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.

computeSnippet...

Beitragvon thq » Mi Sep 12, 2007 4:08 pm

computeSnippet verursacht bei mir 100%CPU (Used Time 829333).

Warum wird das überhaupt ausgeführt wenn ich selber keine Suche gestartet habe ? Oder lädt mein Peer die Seiten auch bei einer Remotesuche ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon Orbiter » Mi Sep 26, 2007 10:20 am

Remote Peers sollten auch snippets erzeugen, wenn sie diese ohne online-fetch aus dem eigenen HTCache befüllen können. Hier scheint es Probleme mit dem Parser zu geben, glaube ich. Wir müssten mal sehen wie sich das untermauern läßt, ggf. mehr Statistiken bauen. Wenn das so ist, wäre der Parser der nächste Punkt fürs Performance-Tuning.

i.A. ist es aber richtig das Snippet-fetching dezentral zu machen, da ja hiermit optimal die Rechenzeit verteilt wird.
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: computeSnippet...

Beitragvon thq » Mi Sep 26, 2007 11:06 am

Das mit den Parser könnte stimmen, habe zumindest schon was im Log gesehen was zum Parser gehört.

Orbiter hat geschrieben:i.A. ist es aber richtig das Snippet-fetching dezentral zu machen, da ja hiermit optimal die Rechenzeit verteilt wird.

Solange die Snippets aus dem "Offline" HTCache geholt werden, ok, alles andere geht mir zu weit.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon Orbiter » Mi Sep 26, 2007 11:17 am

hab den Code nochmal durchgesehen und debuggt, Snippets werden bei remote suche auf jeden Fall _nur_ aus dem htcache gelesen, nie online gezogen. Nun kann es aber sein, das dort eine große Datei lagert und daher die Generierung des Snippets zu lange dauert. Dazu habe ich nun eine Filegrößenbegrenzung auf 100kb eingebaut, und ausserdem Ein Protokoll über die Zeiten generiert. SVN 4112
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: computeSnippet...

Beitragvon thq » Mi Sep 26, 2007 2:44 pm

Habe immer das gleiche Wort benutzt.
Bild1.gif
Bild1.gif (11.92 KiB) 1738-mal betrachtet

Dürfte hiermit zusammen hängen
http://forum.yacy-websuche.de/viewtopic.php?f=6&t=319&p=2083&hilit=index+out+of+range
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon Orbiter » Mi Sep 26, 2007 3:04 pm

Kannst du sagen oder sehen ob da der html-Parser gezogen wird oder ein anderer? Hast du die anderen Parser aktiviert?
Irgendwie können die Werte da nicht stimmen, die used time müsste ja mindestens so hoch sein wie die snippet-comp.
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: computeSnippet...

Beitragvon thq » Mi Sep 26, 2007 5:24 pm

Wenn bei der Ausgabe nichts verkehrt läuft... ich denke mir die Werte bestimmt nicht aus ;)

In den Content Parser Settings ist nur application/pdf aktiv.
Im Log(info) steht sowas ...
PARSER Charset transformation needed from 'ISO-8859-1' to 'UTF-8'

oder
PARSER Charset transformation needed from 'UTF-8' to 'ISO-8859-1'


Werde das nochmal wiederholen, muss aber noch etwas warten weil mein Peer gerade am indexieren ist.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon thq » Fr Sep 28, 2007 5:17 pm

Die Änderungen von 4114 sind drin.
Code: Alles auswählen
20070928180044  0   10  516   8000   70  10  361481
20070928180004  0   10  516   8000   50  10  338939
20070928175921  0   10  516   8000   40  10  253144
20070928175843  0   10  516   8000   10  10  253144
20070928175750  0   10  516   8000   40  10  235596
20070928175715  0   10  516   8000   30  10  209560
20070928175533  0   10  516   8000   50  10  174260
20070928175421  0   10  516   8000   70  10   70781
20070928175219  0   10    0   8000  270   0       0

Die erste Suche brachte nach 35 Sekunden 9 Treffer, danach habe ich die Suche wiederholt und dann immer die nächsten Ergebnisse abgefragt. Das hat dann im Durchschnitt immer ~11 Sekunden gedauert.

Ist das noch ein "Fehler" oder "normal" das es solange dauert und die CPU auf 100% steht. Im Log steht nichts besonderes.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon Fuchs » Mo Okt 01, 2007 7:55 am

So richtig versteh ich die Zahlen auch nicht. Hier mal das Ergebnis von 2 identischen Suchen nach "intel". Einmal global und einmal lokal.

Global:
Returned Results: 0 (es wurden aber welche angezeigt, nur keine von lokal)
Used: 26892
URL fetch: 0
Snippet comp: 0


Lokal:
Returned results: 34222
Used: 81
URL fetch: 23
Snippet comp: 26038


Also bei einer globalen Suche scheinen gar keine lokalen Ergebnisse berücksichtigt zu werden. War das schon immer so?

Außerdem scheint die "used"-Zeit nur die Suchzeit ohne Snippet comp zu sein (bei der lokalen Suche). Bei der globalen Suche werden laut diesen Zahlen gar keine Snippets lokal geholt, was ich mir auch nicht vorstellen kann, wenn das "remote snippet comp" nur ausgeführt werden soll, wenn das Remote Peer die Seite noch im Cache hält.
Fuchs
 
Beiträge: 250
Registriert: Mi Jun 27, 2007 11:39 am
Wohnort: Rostock

Re: computeSnippet...

Beitragvon Orbiter » Mo Okt 01, 2007 9:28 am

natürlich werden die lokalen benutzt. Allerdings funktioniert das seit svn 4115 anders; bislang wurden erst die globalen threads getriggert, dann lokal gesucht in der Zwischenzeit, und dann alles zusammengefügt. Das hat aber dazu geführt, das bei einer lokalen Suche die aufgrund der Menge der lokalen Referenzen sehr lange gedauert hat, die Anzeige des Suchergebnisses unnötig verzögert wurde; man hätte auch die globalen Ergebnisse anzeigen können. Jetzt wird es so gemacht dass die lokale Suche ein zu den globalen threads gleichberechtigter Thread ist. Daher kann es schon mal sein das die globalen schneller sind. Das sollte aber in der Statistik anders aussehen, muss da nochmal gucken.
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: computeSnippet...

Beitragvon Orbiter » Mi Okt 03, 2007 5:44 pm

also ich habe hier pro snippet, das offline berechnet wird 200-400 Millisekunden. Bei einer Remote Suche ist auch das zu viel, das wird dann ja 10 mal gemacht. Daher habe ich, um das zu beschleunigen erst mal das Snippet-Fetching entfernt, wenn das schon länger als 300 Millisekunden gedauert hat. Wenn das erste Fetchen schon 700 Millisekunden gedauert hat war das dann pech. Wie auch immer, jetzt sollten die remote suchen schneller gehen.
SVN 4137
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: computeSnippet...

Beitragvon thq » Mi Okt 03, 2007 7:24 pm

Können wir nicht nicht für jede Seite bei der das Snippet zum ersten mal erstellt wird das er Ergebnis parallel zur Seite im HTCache speichern als hash.snippet ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: computeSnippet...

Beitragvon Orbiter » Mi Okt 03, 2007 7:43 pm

Wenn eine Seite für die Snippet-Berechnung extra geladen wird (um den Fall geht es hier aber gar nicht, sondern nur um Fälle wo die Seite schon im HTCache ist), so sollte sie dann auch im HTCache bleiben. Wenn das nicht so ist, ists ein Bug. Der Unterschied zwischen Snippet-Cache und HTCache ist, das die Einträge im Snippet-Cache ja auch suchwortbezogen sind, und die im HTCache nicht Suchwortbezogen.

Das ganze Thema ist aber mit meinem letzten Commit noch nicht fertig, das ist richtig. Ich glaube das sich hier eine der größeren Baustellen befindet, um die es bei einem nächsten Release gehen sollte. Um das ganze mal etwas plastischer zu machen, hier geht es um folgende Komponenten:

1) Textparser (package htmlFilter)
2) Textanalyse (plasmaCondenser)
3) Snippet-Berechnung (plasmaSnippetCache)

in 1) und 3) vermute ich das Performance-Leck nicht, wohl aber in 2). Allerdings müsste man 1) nochmal komplett überarbeiten, um endlich korrekt mit Unicode umgehen zu können. Es ergeben sich also folgende Baustellen:

zu 1) muss Ausgabe in Unicode erfolgen, dabei muss html und ISO korrekt nach Unicode umgerechnet werden
zu 2) müsste ein komplettes Redesign erfolgen. Das ist die älteste Datei in YaCy und hier vermute ich das Performanceleck. Beim Redesign ist auch auf eine korrekte Umwandlung von Unicode-Wörtern nach Wort-Hashes zu achten.
zu 3): wer sich das anguckt wird feststellen das es Eigenschaften aus 2) benutzt, die aber nicht richtig angewendet werden und daher zu manchmal falschen Snippets führen.

Wenn ihr also nach einer Tätigkeit während meines Urlaubs sucht, dann wäre das hier richtig sinnvoll. Ziel müsste es sein, das ein Snippet in 10 Millisekunden erzeugt werden können soll, das halte ich für möglich. Dann werden wir einen erheblichen Leistungszuwachs in der Suchzeit sehen.
So sehe ich die Komponenten an die ich mich geben müsste, bevor ich nach der Datei plasmaSnippetCache schaue. Wäre super wenn hier jemand mithilft!
Orbiter
 
Beiträge: 5793
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron