Performance Problem

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.

Performance Problem

Beitragvon pintman » Sa Jan 05, 2008 10:45 am

Ich habe ein Problem mit der Performanz von YaCy beim Crawlen und Indizieren. Mein Rechner geht dabei dermaßen in die Knie, dass ich recht starke Verzögerungen beim Arbeiten bemerke. :(

Der Prozessor ist gar nicht mal so stark beansprucht. Vielmehr scheint es die I/O zu sein, die ihn beschäftigt.

An welcher Schraube kann ich drehen, damit sich YaCy etwas defensiver verhält?
pintman
 
Beiträge: 31
Registriert: Do Jan 03, 2008 8:15 am
Wohnort: Dortmund

Re: Performance Problem

Beitragvon miTreD » Sa Jan 05, 2008 10:49 am

Admin Console - > Queues Perfomance Settings.
Interessant sind die Werte der Spalte Delay between busy loops für:
Local Crawl
Parsing/Indexing
Crawl URL Stacker
Wenn Du hier ein wenig mit den Wartezeiten experimentierst, kannst Du ordentlich was rausholen.
miTreD
 
Beiträge: 1241
Registriert: Mi Jun 27, 2007 11:35 am
Wohnort: /home

Re: Performance Problem

Beitragvon lulabad » Sa Jan 05, 2008 10:59 am

IO ist das was die Geschwindigkeit von YaCy am meisten beinflusst.
Einstellen kannst du die Geschwindigkeit, mit der YaCy Seiten crawled/indexiert. Das machst du unter Admin Panel->Queues Performance Settings.
Es geht hier um die obere Tabelle. Nicht erschrecken, man kann hier sehr viel einstellen.
Die Geschwindigkeit von YaCy kann man auf unterschiedlichen Wegen einstellen.

1) Über das Crawlen
2) das Indexieren

Der Effekt ist der gleiche, der Unterschied ist jedoch, dass bei ersteren der Indexer meistens leer ist und dadurch "weiterläuft" während beim zweiten der Indexer immer voll ist und wartet bis er weiterlaufen darf. Soweit ich weiss hängt am Indexer auch das Flushen des Ram Indexes auf die Platte und das wird bei einem Lauf des Indexers ausgeführt.
Das bedeutet, dass die erstere Methode die bessere ist, da der Indexer häufiger läuft und damit auch den RamCache leer macht.

Jetzt zum einstellen.
Du suchst als erstes in der Tabelle die Zeile mit dem Wert Local Crawl. Dann suchst du die beiden Spalten Delay between idle loops und Delay between busy loops. Wie der Name schon sagt, ist hier die Wartezeit eingetragen, die zwischen der Ausführung zweier Läufe gewartet wird.
Die Werte werden in Milisekunden eingetragen, also Sekunden mal 1000.
Dabei sollte bei den "idle loop" immer ein grösserer oder gleicher Wert wie bei "busy loops" eingetragen werden.
Gute Werte für etwas langsamerer Rechner sind hier 10000 und 5000.
Am Ende musst du aber selber etwas probieren bis du den geeigneten Wert für dich herausgefunden hast.

Mist, du langsam. :cry:
lulabad
 
Beiträge: 709
Registriert: Mi Jun 27, 2007 11:40 am
Wohnort: Im Herzen Bayerns

Re: Performance Problem

Beitragvon pintman » Sa Jan 05, 2008 11:09 am

Ja, danke. Das sieht jetzt schon besser aus und ich kann weiter arbeiten, während im Hintergrund gecrawled wird. :) Dafür aber auch gleich ein Feature Request: Das ganze Menu ist an der Stelle viel zu technisch. :(

Ich hatte mich zuerst an dem Speedwert bei den Crawler Queues versucht, jedoch nicht wirklich verstanden, was passiert, wenn ich auf Custom, Minimum oder Maximum drücke.
pintman
 
Beiträge: 31
Registriert: Do Jan 03, 2008 8:15 am
Wohnort: Dortmund

Re: Performance Problem

Beitragvon miTreD » Sa Jan 05, 2008 12:04 pm

pintman hat geschrieben:Ich hatte mich zuerst an dem Speedwert bei den Crawler Queues versucht, jedoch nicht wirklich verstanden, was passiert, wenn ich auf Custom, Minimum oder Maximum drücke.
Im Prinzip passiert da im Hintergrund auch nichts Anderes als Du jetzt manuell per Hand gemacht hast. Ist halt nur nicht so effektiv wie das manuelle "Rantasten" an gute Werte. Liegt naturgemäß daran, dass die einzelnen Hardwarevoraussetzungen der Peers viel zu unterschiedlich sind und jeder Peerbetreiber auch noch unterschiedliche Vorstellungen von Performance hat :-)
miTreD
 
Beiträge: 1241
Registriert: Mi Jun 27, 2007 11:35 am
Wohnort: /home

Re: Performance Problem

Beitragvon pintman » Sa Jan 05, 2008 12:29 pm

Also das Prinzip ist, dass ich einen Wert eingebe und dann auf Minimum, Maximum oder Custom drücke und dieser Wert dann übernommen wird?!
Oder wird der Wert nur bei Custom übernommen und bei Minimum bzw. Maximum nur angezeigt?

Irgendwie konnte ich keine Veränderung feststellen, egal, was ich eingegeben hatte.
pintman
 
Beiträge: 31
Registriert: Do Jan 03, 2008 8:15 am
Wohnort: Dortmund

Re: Performance Problem

Beitragvon rzkh » So Jan 06, 2008 2:19 am

pintman hat geschrieben:Irgendwie konnte ich keine Veränderung feststellen, egal, was ich eingegeben hatte.


Meiner Erfahrung nach gilt hier wie fast überall: Hubraum ist durch nichts zu ersetzen. Yacy ist Prozessorlastig, wenn die Indexe klein sind und alles im RAM gehalten werden kann - dann geht das indizieren wie Sau und die Suche ist flott. Also soviel RAM wie möglich zuweisen, bei den Performanceeinstellungen für Puffer und Prozesse mal die Spalte der Speichernutzung pro beschäftigtem Durchlauf ansehen. Ich setze hier den mindestens benötigten Speicher auf die hälfte oder auf 100% wenn die Maschine genug RAM hat.

Wenns am RAM mangelt, muss im Plattenbereich was gemacht werden. Hier ist wichtig, dass die Platte(n) genügend IO/s schaffen, und auch der Kontroller viele Zugriffe überlebt. Die Dauertransferrate ist nebensächlich.

Kleines Praxisbeispiel:
Einer meiner Entwicklungs-PC (RZKHWS1) ist ein P4 mit 3GHz, aber einer einzelnen IDE-Platte (irgendeine WD, 250GB). Die CPU langweilt sich in der Regel, Yacy hat hier 500MB RAM. Irgendwann wird die CPU nur noch gering verwendet, aber die Plattenlampe ist am dauerleuchten. Die Platte schafft grobe 60 IO pro Sekunde, der Rechner wird hakelig, wenn man noch andere Sachen machen will.

Auf der anderen Seite eine ältere AS/400 (RZKH820) mit 2*POWER4 früher Generation, 500MHz, jeweils 4MB Cache. Hier ist auch bei größerem Index und mehreren Suchen die CPU nicht unbedingt am Anschlag, aber das Thread-Management von i5/OS zaubert. Die Maschine hat 12*17GB und 12*8GB Platten. Das bedeutet, das System kann grob 12*80 plus 12*55 IO pro Sekunde regeln. Die Plattenlast ist (auch wenn parallel noch 100 Programmierer drauf arbeiten) im harmlosen Bereich - hier gibts also keine Sorgen. Ausserdem kann Yacy hier auf 2GB RAM explizit zugreifen.

Also - wenn Du Deinen PC auf Dauer beschleunigen willst, und mit RAM nicht viel mehr zu machen ist, gönne ihm ein RAID0 oder RAID1 (wobei RAID0 besser ist, da Yacy recht viele wüste Schreibzugriffe produziert).

Ideal ist ein flotter RAID5-Controller mit WriteCache und ein paar flotte SCSI-Platten daran.

Aber das kostet... ;-)

Gibts eigentlich IDE-Controller mit Schreibcache? Hatte mal einen Escalade probiert, die waren nicht so der Brüller. Da sind die IDE/SCSI-Bridges von Infortrend ja besser...

-h
rzkh
 
Beiträge: 127
Registriert: Do Aug 16, 2007 10:25 pm

Re: Performance Problem

Beitragvon pintman » So Jan 06, 2008 9:49 am

Das kllingt aber sehr technisch. Für eine reine Serveranwendung ist das sicher auch vertretbar. Wenn YaCy aber auf vielen Desktop-PCs von lieben Anwendern laufen soll, die Rechenleistung und Plattenplatz zur Verfügung stellen, sollte das doch auch einfacher gehen. So ist zumindest meine naive Wunschvorstellung als Benutzer. :D
pintman
 
Beiträge: 31
Registriert: Do Jan 03, 2008 8:15 am
Wohnort: Dortmund

Re: Performance Problem

Beitragvon Vega » So Jan 06, 2008 10:43 am

@rzkh

Gibts eigentlich IDE-Controller mit Schreibcache? Hatte mal einen Escalade probiert, die waren nicht so der Brüller. Da sind die IDE/SCSI-Bridges von Infortrend ja besser...


Ja, gibt es - sehr gut unterstützt unter Linux werden die Controller von 3ware und Tekram http://www.3ware.de bzw. http://www.tekram.com
von Tekram sind besonders die Areca ARC-1110/1120/1130/1160/1170 interessante Modelle.

"One SODIMM socket to support DDR333 SDRAM with ECC protection, Upgrade to 1GB for Areca ARC-1130/1160/1170 model"

Ist aber eben auch nicht ganz billig sowas.

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

Re: Performance Problem

Beitragvon Huppi » So Jan 06, 2008 4:39 pm

Wenn YaCy aber auf vielen Desktop-PCs von lieben Anwendern laufen soll, die Rechenleistung und Plattenplatz zur Verfügung stellen, sollte das doch auch einfacher gehen.


Da gibt es sicherlich noch einiges zu verbessern. Wäre es nicht ein guter Anfang, die Delay-Werte per default zu vergrößern?
Huppi
 
Beiträge: 898
Registriert: Fr Jun 29, 2007 9:49 am
Wohnort: Kürten

Re: Performance Problem

Beitragvon pintman » So Jan 06, 2008 7:47 pm

Habe gerade übrigens mal mit Nutch verglichen und feststellen müssen, das Nutch nach ein paar Minuten mit relativ wenig Rechenlast durch war, YaCy jedoch nach einige Stunden immer noch fröhlich die Festplatte beschäftigt hat.
pintman
 
Beiträge: 31
Registriert: Do Jan 03, 2008 8:15 am
Wohnort: Dortmund

Re: Performance Problem

Beitragvon devnull » So Jan 06, 2008 11:41 pm

Vega hat geschrieben:Ja, gibt es - sehr gut unterstützt unter Linux werden die Controller von 3ware und Tekram http://www.3ware.de bzw. http://www.tekram.com


Stimmt schon, aber mit yacy kommen selbst die an ihre Grenzen (50:50 : 1G yacy vs.1G System+buffers+filecache, 3ware):

Code: Alles auswählen
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.10    0.00    0.30   99.60    0.00    0.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             145.60         0.00       650.40          0       3252

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.10    0.00    0.10   99.80    0.00    0.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             132.14         0.00       566.07          0       2836

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.10    0.00    0.20   99.70    0.00    0.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             121.00       286.40       205.60       1432       1028

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.20    0.00    0.20   99.60    0.00    0.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              84.43       313.77        27.15       1572        136

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.00    0.00    0.20   99.80    0.00    0.00

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda              84.80       307.20        32.80       1536        164

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.20    0.00    0.20   91.43    0.00    8.18

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             101.40       325.60        83.60       1628        418


Ist schon irgendwie interesssant, dass ca. 40 TB ueber besagte Controller
gehandhabt werden koennen, yacy aber die Bremse reinhaut (nicht als Kritk ansehen, eher memo to myself, hatt ich schon mal,
aber wo vrdmmt...)l
devnull
 
Beiträge: 5
Registriert: Di Aug 14, 2007 12:28 am

Re: Performance Problem

Beitragvon rzkh » Mo Jan 07, 2008 2:06 am

devnull hat geschrieben:Ist schon irgendwie interesssant, dass ca. 40 TB ueber besagte Controller
gehandhabt werden koennen, yacy aber die Bremse reinhaut (nicht als Kritk ansehen, eher memo to myself, hatt ich schon mal,
aber wo vrdmmt...)l


Naja, 40TB verwalten ist banal, das kriegt man mit ein wenig mehr als 32Bit ja locker hin (i5/OS addressiert 128Bit). Hier scheint aber ein echter IO-Flaschenhals vorzuliegen, was sind da für Platten dran? Yacy produziert gerne einen Stapel dirty-writes, den der Controller wohl definitiv auf die Platte genagelt wissen will. Hat jemand eine Solid State Disk greifbar?

Ich habe irgendwo noch eine 1GB CompactFlash, die steck ich gleich mal in mein X21 und berichte später ;-)

-h
rzkh
 
Beiträge: 127
Registriert: Do Aug 16, 2007 10:25 pm

Re: Performance Problem

Beitragvon devnull » Mo Jan 07, 2008 1:44 pm

Sind zwei WD 5000YS RE2 als Raid 1 an einem 3ware 8006-2LP. Das Ding steckt afair in einem PCI-X Slot, kann allerdings glaub ich nur SATA, kein SATA II.

SSD hab ich nicht. Gibt's die auch als 3,5", ich find nur 2,5"? Andererseits bei den Preisen :-( Schau ich lieber mal, ob ich noch ein paar Ram-Riegel auftreiben kann, mehr Cache kann nicht schaden...

Im Moment siehts etwas besser aus (zumindest schaufelt er Daten hin und her):
Code: Alles auswählen
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           9.98    0.00    1.70   48.80    0.00   39.52

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             139.72      5139.12       249.30      25747       1249

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.40    0.00    0.20   79.20    0.00   13.20

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             127.40       235.40      1139.20       1177       5696

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           7.88    0.00    0.70   80.04    0.00   11.38

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             115.60      2261.20      2614.80      11306      13074

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          10.60    0.00    1.80   49.10    0.00   38.50

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda             153.29      8046.71       864.27      40314       4330
devnull
 
Beiträge: 5
Registriert: Di Aug 14, 2007 12:28 am

Re: Performance Problem

Beitragvon Vega » Mo Jan 07, 2008 11:13 pm

@devnull

Ich hab letztens in irgendeinem Forum mal was gelesen, da hat auch jemand mit einem 3 Ware Controller gekämpft, die Performance war unter aller Kanone - auch unter verschiedenen Betriebssystemen mit allen möglichen Treibern etc.
Zum Schluss hat sich herausgestellt das das verwendete Mainboard/Chipsatz wohl irgendwie mit dem Controller nicht klar kommt. - Frei nach dem Motto - alles ist kompatibel, aber manche Dinge sind kompatibler als andere :mrgreen: - Er hat dann den Controller gegen einen Areca/Tekram getauscht und alles war super...

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

Re: Performance Problem

Beitragvon rzkh » Di Jan 08, 2008 1:27 am

rzkh hat geschrieben:Ich habe irgendwo noch eine 1GB CompactFlash, die steck ich gleich mal in mein X21 und berichte später ;-)

-h


Nachtrag: kannsch vergesse!

Hardware: IBM Thinkpad X21 (700MHz P3, 384MB RAM). Eine Sandisk 1GB CF Karte im internen CF-Slot kommt (neue Yacy-Installation, ein paar tausend Links) auf etwa 25-40 PPM. Dieses Verzeichnis auf die interne 80MB Samsung 2.5" Platte kopiert: etwa 65-90PPM. Wollte jetzt auch keinen Dauertest machen, da ich sonst keine CF-Karte mehr für die Kamera habe, falls die Karte verreckt <g>

-h
rzkh
 
Beiträge: 127
Registriert: Do Aug 16, 2007 10:25 pm

Re: Performance Problem

Beitragvon Orbiter » Mo Feb 25, 2008 3:31 pm

PPM Rekord gebrochen! (hatte jemand schon mal 900 PPM?)
ppm-rekord.png
ppm-rekord.png (9.17 KiB) 1084-mal betrachtet

Das ganze bei 700MB RAM auf einem Dualcore-MacBook 2GHz und bereits 30000 URLs im Index. Der Index-Cache auf 150000 war nur bei 90000 ausgelastet.
Ich habe hier einen Intranet-Crawl gemacht, wobei das Intranet nur der eigene Rechner war und der Webserver für die Intranetseiten YaCy selbst war. Dazu habe ich alle c't der letzten 10 Jahre (hab die alle auf CD), die freien Bücher von galileocomputing, selfhtml und das CIA World Factbook in ein Verzeichnis DATA/HTDOCS/repository/ gelegt und einen Crawl Start von http://localhost:8080/repository/ gemacht, mit einem URL Filter auf http://localhost:8080/repository/.* damit nicht die eigenen servelet-Seiten indexiert werden. Das sind alles keine kleine Dateien, eher große mit bis zu mehreren tausend Wörtern pro html-Dokument. Ausserdem das SVN 4507 in dem noch einige Parser-Verbesserungen sind...
Orbiter
 
Beiträge: 5787
Registriert: Di Jun 26, 2007 10:58 pm
Wohnort: Frankfurt am Main

Re: Performance Problem

Beitragvon thq » Mo Feb 25, 2008 4:16 pm

In plasmaCondenser.java gibt es diese Zeile
Code: Alles auswählen
if ((c == (char) 8) || (c == (char) 10) || (c == (char) 13)) c = ' ';
Soll hier anstatt der 8 nicht eigentlich die 9 stehen ?
thq
 
Beiträge: 651
Registriert: So Jul 08, 2007 12:23 pm

Re: Performance Problem

Beitragvon Orbiter » Mo Feb 25, 2008 8:11 pm

ja das stimmt natürlich, ist gefixt in SVN 4509 (mit dem Holzhammer)
Orbiter
 
Beiträge: 5787
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 2 Gäste