RAM am Limit - Wie kann ich YaCy weiterbetreiben??

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.

RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon whitecloud » Mo Mai 18, 2009 4:37 pm

Hallo,

ich habe einen Peer mit 44Mio Links und 35 Mio Wörtern. Die Kiste auf der YaCy läuft hat 2,5 GB physischen RAM. Da ich dort aber auch noch andere Sachen mache als YaCy kann ich maximal 1.7 GB RAM für YaCy freigeben.

Problem: nach dem Start verbraucht YaCy nun schon >1.6GB und bei intensiver Nutzung laufe ich schnell in OOMs.
Frage: wie kann ich den Hauptspeicherverbrauch reduzieren / begrenzen und trotzdem YaCy als Proxy / Suchmaschine benutzen?

Falls es keine gute Lösung ist, bleibt mir nur den den Index "wegzuschmeissen" und von 0 anzufangen. Aller halbe Jahre folgt dann das gleiche Spiel?

YaCy kann jetzt wirklich sauschnell indexieren. Aber ich fürchte das löst nicht nur Probleme, sondern wirft auch vermehrt Fragen nach der Index-PFLEGE auf....
whitecloud
 
Beiträge: 38
Registriert: Mi Nov 05, 2008 4:24 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon bluumi » Mo Mai 18, 2009 4:41 pm

Soweit ich weiss ist einer der Speicherfresser die EcoRamTabelle.
@Devs: Was würde passieren, wenn er die älteste
DATA/INDEX/freeworld/TEXT/METADATA/urls.2008xxxx.table 200Mbyte
löscht? Verliehrt er dann, was?
bluumi
 
Beiträge: 388
Registriert: Mi Okt 08, 2008 7:27 am

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon whitecloud » Mo Mai 18, 2009 4:45 pm

in Ergänzung zu eben mal ein Blick auf die großen Speicherfresser....
Dateianhänge
Bild 1.png
Speicherverbrauch YaCy @ whitecloud
Bild 1.png (100.5 KiB) 621-mal betrachtet
whitecloud
 
Beiträge: 38
Registriert: Mi Nov 05, 2008 4:24 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon thq » Mo Mai 18, 2009 4:59 pm

bluumi hat geschrieben:ich weiss ist einer der Speicherfresser die EcoRamTabelle.
@Devs: Was würde passieren, wenn er die älteste
DATA/INDEX/freeworld/TEXT/METADATA/urls.2008xxxx.table 200Mbyte
löscht? Verliehrt er dann, was?
Sofern die URLs noch in benutzt werden, produziert das leere URL-Referenzen in den RWIs (Wörtern), das passiert auch durch die Blacklisten. Dafür und für veraltete URLs gibt es noch keine Lösung. Es kontrolliert ja nur der suchende Peer die URLs und nicht der Verteiler.

Somit kann es sein das die Peers Datenleichen als "Ballast" in der DB haben, URLs wie auch auch RWIs.

Eine Lösung ???
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon Orbiter » Mo Mai 18, 2009 5:21 pm

also 44 Mio URLs sind ja schon mal ein Hammer. Ich finde dann 2.5 GB nicht gerade viel, die sauteure 'Enterprise Suche' (will jetzt hier nicht alles beim Namen nennen) die ich professionell betreue will gerne viel, viel mehr haben (die 8-cores haben 64 GB RAM) und kommen auf ähnliche Dokumentenmengen.
bluumi hat geschrieben:Soweit ich weiss ist einer der Speicherfresser die EcoRamTabelle.
@Devs: Was würde passieren, wenn er die älteste
DATA/INDEX/freeworld/TEXT/METADATA/urls.2008xxxx.table 200Mbyte
löscht? Verliehrt er dann, was?

Das wäre ein Weg, der 'Demenz-Weg'. Es passiert nichts, ausser dass die URLs die du dann löschst bei der Suche nicht mehr gefunden werden. Die verlorenen URLs werden aber bei einem neuen Crawl wieder neu angelegt. Du hast halt nur unaufgelöste Referenzen in der RICELL, aber die tun nicht weh ausser dass sie halt Speicher verbraten.
Orbiter
 
Beiträge: 5787
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon whitecloud » Mo Mai 18, 2009 5:33 pm

hmmm, nun ja - ich habe hier nun mal aber keine hardware für eine sauteure Enterprise-Suche zu verschenken. Der "verschwendete" Speicherplatz für die RWI ist dann aber nur Plattenplatz, kein Hauptspeicher, oder? Gäbe es auch die Möglichkeit Idexteile "zu verschenken", also an einen anderen Peer zu übertragen? Geht das technisch? Hat jemand Interesse?

Ansonsten eben Demenz :)
whitecloud
 
Beiträge: 38
Registriert: Mi Nov 05, 2008 4:24 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon thq » Mo Mai 18, 2009 5:52 pm

whitecloud hat geschrieben:Der "verschwendete" Speicherplatz für die RWI ist dann aber nur Plattenplatz, kein Hauptspeicher, oder?
Ein RWI oder eine URL verbrauchen je 12 Bytes für den Index (Memory). Bei den URLs sollte es aber noch ein Datei-Index geben, bin mir da aber nicht so sicher.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon dulcedo » Mo Mai 18, 2009 5:57 pm

Eine Übergangslösung, bis auch Teilindexe gelöscht/übertragen werden können wären schon mal angedachte Storage-Peers die viel RAM haben und nur DHT machen. Dorthin überträgt man dann den kompletten Index des betroffenen Peers, so sind die Indexdaten zumindest theoretisch suchbar und auch nicht verloren. Muss jeder wissen wie wertvoll. Was man dann bräuchte wäre z.B. im KIT oder anderswo mit zuverlässigerr Anbindung ein paar IP-Adressen um komplette Peers zusammenzulegen. Mit 16GB und 1TB dürfte da einiges gehen, das ist bezahlbar, sogar als Serverhardware.
Dann Cyronics: warten bis irgendwann die echte Zellstruktur funktioniert, dann kann man wieder aufsplitten.
PCA42 du praktizierst doch so etwas mit 2 Peers untereinander, oder hatte ich das falsch verstanden?
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon Orbiter » Mo Mai 18, 2009 6:33 pm

whitecloud hat geschrieben:hmmm, nun ja - ich habe hier nun mal aber keine hardware für eine sauteure Enterprise-Suche zu verschenken.

Das war ja auch nur ein Beispiel um zu sagen dass YaCy im Vergleich recht wenig RAM braucht.

whitecloud hat geschrieben:Der "verschwendete" Speicherplatz für die RWI ist dann aber nur Plattenplatz, kein Hauptspeicher, oder?

ja, pro gelöschte URL 40 bytes * Anzahl der Wörter in dem Dokument das gelöscht wurde. Die 40 Bytes setzten sich aus den von thq genannten 12 bytes URL-hash zusammen und weiteren Attributen fürs Ranking (Wortposition, Art des Wortes, Art des Dokumentes und vieles mehr). Ist aber nur Plattenplatz.

whitecloud hat geschrieben:Gäbe es auch die Möglichkeit Idexteile "zu verschenken", also an einen anderen Peer zu übertragen? Geht das technisch? Hat jemand Interesse?

Nur alles komplett.
Orbiter
 
Beiträge: 5787
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon PCA42 » Mo Mai 18, 2009 7:09 pm

Ich finde es schade, dass bisher auf meinen Vorschlag RAM zu sparen nicht eingegangen wurde. Hier hatte ich eine Idee zur Verringerung des Speicherbedarfs pro Hash dargestellt. Leider habe ich dazu keine Antwort erhalten. Deshalb kann ich für mich nicht nachvollziehen, ob die Idee einfach Schrott war oder warum eine Implementierung nicht erfolgen kann bzw. sollte.

Was die grundsätzlichen Hardware-Anforderungen von Yacy angeht muss ich Orbiter recht geben. Mein Index auf dem Root-Server ist derzeit 56 GB groß. Diese Datenmenge kann Yacy innerhalb einer Sekunde durchsuchen. Das finde ich phänomenal. Man muss sich bei der Benutzung von Computern glaube ich immer vor Augen halten, was sich mit den verfügbaren Resourcen erreichen läßt. Und dabei schneidet Yacy gut ab.

Was vielleicht von Nutzen wäre - und diese Diskussion hatten wir schon häufiger - wie man Yacy an die verfügbaren Resourcen anpasst. Ansätze wie der Resource-Observer sind schon vorhanden. Das muss nur weiter ausgebaut werden. Und da ist meine Erachtens noch viel Platz für kreative Ideen.
PCA42
 
Beiträge: 621
Registriert: Mi Jan 23, 2008 4:19 pm
Wohnort: @Home

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon whitecloud » Mo Mai 18, 2009 8:43 pm

bitte, bitte - nicht falsch verstehen. Ich stimme vollständig zu, dass YaCy ab der gegebenen Resourcen großes leistet! Mein Punkt zielt einfach nur darauf ab, dass die Zielgruppe für YaCy - so wie ich es bisher verstanden habe - eher die vielen Kleinen sind, als wenige Große (auch wenn das heute IMHO noch nicht die Struktur des Netzes widerspiegelt). Und unter dieser Prämisse wäre es meiner Meinung nach wichtig gut mit der Begrenzung von Ressourcen umgehen zu können. In Sachen Rechenzeit / Platten-IO ist YaCy hier ganz sicher gut aufgestellt (beides lässt sich ja sauber limitieren), in Sachen Hauptspeicher würde ich da noch eine Baustelle sehen. Und: niemand hat gesagt, dass es einfach wird 8-)

Ich werde jetzt erstmal 3GB "alte" URLs opfern. Gibt es eigentlich einen Weg die zugehörigen RWE Leichen mit der Zeit zu entsorgen?
whitecloud
 
Beiträge: 38
Registriert: Mi Nov 05, 2008 4:24 pm

Re: RAM am Limit - Wie kann ich YaCy weiterbetreiben??

Beitragvon dulcedo » Di Mai 19, 2009 7:52 am

Zum 'Opfern' habe ich nun mal durchgerechnet und vielleicht eine Strategie:

Ein Peer der nur von bestimmten Startpunkten aus crawlt schafft bei durchschnittlicher Performance konstant 200 Seiten/Minute, das sind 12k pro Stunde oder 228k am Tag. Von 10 heruntergeladenen GB bleiben im Schnitt 1-2GB in der Datenbank hängen, das rechne ich als die Menge die er auch wirklich indexiert, also haben wir 20k gespeicherte neue Seiten pro Tag und Peer. Bitte korrigieren wenn Irrtum meinerseits.
Das finde ich schnell genug um einen Peer komplett neu aufzubauen, das optimiert auch die dann neu eingelesenen Daten, die Startpunkte lege ich als Bookmarks ab.

Anders sieht die Sache bei Peers aus die einen Benutzer oder eine Community erlernen, über den Proxy oder andere Methoden. Diese Daten sind natürlich sehr wertvoll, aber auch nicht übermässig viele. In Zukunft möchte ich so erlernte Daten einem Crawler-Peer einfach einpflanzen können, im Ansatz funktioniert das ja schon. Dann kann ich sie getrennt laufen lassen, ein guter Server schafft 2 Instanzen für Proxy und den eigentlichen Peer.
In Zukunft verwalten sie dann ihre Daten alleine, der Grosse räumt bei sich radikal auf, übernimmt danach wieder die Daten des Proxy-Peers und crawlt wieder seine Startpunkte.
dulcedo
 
Beiträge: 1006
Registriert: Do Okt 16, 2008 6:36 pm
Wohnort: Bei Karlsruhe


Zurück zu Fragen und Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste