Wieviel Memory braucht YaCy !

Ereignisse, Vorschläge und Aktionen

Wieviel Memory braucht YaCy !

Beitragvon thq » Do Apr 24, 2008 5:03 pm

Das sind meine Erfahrungswerte für ein DHT Peer.

Zum arbeiten 80-100 MB (mit Crawlen würde ich sogar 180 MB einplanen)
Für 1 Millionen Wörter (RWIs) ~22 MB
Für 1 Millionen Links ~21 MB

Ein Peer mit 5 Millionen RWIs und 10 Millionen Links sollte dann ~425 MB + n MB für den Cache Speicher haben. Ich würde mindesten 500MB empfehlen.

Bei diesen Werten sollte es dann auch keine Speicherprobleme geben, wenn man aber nicht soviel Speicher hat wird YaCy zwar auch laufen, aber dann muss man auch mit OOM Fehlern rechnen oder ein anderen Fehlverhalten.

Die Werte sind so zu verstehen YaCy ohne Probleme betreiben zu können. Vielleicht hilft das den ein oder anderen bei der Planung.
Zuletzt geändert von thq am Do Apr 24, 2008 10:46 pm, insgesamt 1-mal geändert.
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Wieviel Memory braucht YaCy !

Beitragvon Lotus » Do Apr 24, 2008 5:27 pm

Ich komme mit zugewiesenen 365 MB ca 10 Mio. Links weit. Crawlen ist dann nicht mehr möglich und dieser Wert ändert sich stetig ins positive. :) Grenze max. würde ich bei ca. 15 Mio. ansetzen. (wohlgemerkt in der aktuellen Version)
Lotus
 
Beiträge: 1699
Registriert: Mi Jun 27, 2007 3:33 pm
Wohnort: Hamburg

Re: Wieviel Memory braucht YaCy !

Beitragvon Orbiter » Do Apr 24, 2008 8:03 pm

Danke, Thomas für diese Auswertung! Ich habe kurz nachgerechnet und bin auf die etwa gleichen Werte gekommen:
- die kelondroBytesIntMap Datenstruktur, die sowohl den ecoTables als auch den flexTables zugrunde liegt, benötigt für einen Eintrag x+4 bytes, wobei x die Länge des Hauptschlüssels ist. Bei fast allen Tabellen sind das die URL/Wort-Hashes mit der Länge 12
- ein Eintrag braucht daher 16 bytes
- die kelondroRowCollection, die als Basisdatenstruktur den Index verwaltet, hat einen grow Faktor von 1.4
- d.h. es werden für 1 Mio Wörter/URLs gebraucht: 1000000 * 16 * 1.4 = 22400000 bytes = 21,36 MB

ein bisschen liesse sich daher wohl noch durch Verringerung des Grow Factor einsparen, allerdings hätte das auch Performanceeinbussen.
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Wieviel Memory braucht YaCy !

Beitragvon DanielR » Do Apr 24, 2008 10:21 pm

Habe das hier unter Cache Einstellungen:
Wörter im RAM-Cache (Size in KBytes)
DHT-Ausgehend 399.999 (475.366 KB)
DHT-Eingehen 107.196 (62.000 KB)
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: Wieviel Memory braucht YaCy !

Beitragvon Orbiter » Do Apr 24, 2008 10:33 pm

das ist was anderes, der cache braucht massig Platz wenn du den so groß stellst. Da ist ja auch nicht nur ein Index drin sonden die ganzen, ungeflushten RWIs.
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Wieviel Memory braucht YaCy !

Beitragvon DanielR » Do Apr 24, 2008 10:43 pm

der Platz ist auch nicht das Problem ;) Wollte nur darauf hinweise, dass hier auch Speicher verbraucht wird. Auch wenn ich nicht genau weiß wofür??
DanielR
 
Beiträge: 395
Registriert: Di Feb 12, 2008 2:22 pm

Re: Wieviel Memory braucht YaCy !

Beitragvon Orbiter » Fr Apr 25, 2008 10:30 am

wofür: zur Akkumulierung der RWIs. Indexieren bedeutet ja die Umkehrung der URL->Wort* - Relation zu einer Wort->URL* - Relation.
Der Vorgang benötigt einen Zwischenspeicher für die Wörter, wo alle URL-Referenzen gesammelt werden, bevor sie als größeren Block in die collections geschrieben werden.

In Lucene läuft das anders, da findet ein 'Falten' statt; da werden alle Wort->URL - Relationen sofort fortlaufend in eine Datei geschrieben, und wenn diese eine gewisse Größe erreicht wird sie mit einer anderen Datei 'gefaltet', d.h. gemeinsam iteriert und gleiche Referenzen miteinander verschmolzen. Das benötigt weniger RAM, bietet aber auch keine Möglichkeit nach Inhalten zu suchen bis die Faltung komplett ist.

kleiner Ausblick:

Ich visiere eine Mischung aus beiden Techniken an, die Notwenigkeit solche Faltungs-Dateien effizient und schnell schreiben zu können habe ich in 0.58 bereits realisiert; hier ist ja der Index-Dump um Größenordnungen schneller (100000 RWIs in ein paar Sekunden statt viele Minuten in 0.57). Der Cache-Dump ist nun schon die Datenstruktur für das 'YaCy-Falten' in denen auch ein Index mitgeschleppt werden wird und die Erreichbarkeit für die Suche auch während des Indexierens garantiert.

Eine Besonderheit wird das 'Falten und Spalten' sein, die Dumps sollen nämlich immer weiter gesplittet werden unter Anwendung der Hash-Ordnung, so dass als Ergebnis solche 'Happen' entstehen, die man dann mit einer neuen DHT-Versendung verschicken kann. Das wird auch das bisherige aufwendige Aufsammeln erleichern.
Orbiter
 
Beiträge: 5796
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main


Zurück zu Mitmachen

Wer ist online?

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

cron