powered by CADENAS

Manual

Manual

1.7.5.9.5.1. Caching für die Versionen bis 9.07

1.7.5.9.5.1.1. Beschreibung der unterschiedlichen Caches

Ausschnitt aus $CADENAS_SETUP -> geomsearch.cfg

[Cache_Local_Search]
maxOpenIndexCount=100
linIndexCacheSize=0
sampleLineListCacheSize=0
pivotDistListCacheSize=0
logFileName=

[Cache_Server_Search]
maxOpenIndexCount=100
linIndexCacheSize=150000
sampleLineListCacheSize=800000
pivotDistListCacheSize=50000
logFileName=

[Hinweis] Hinweis

Der Cache kann für die lokale Suche und für die Suche per Such-Server getrennt eingestellt werden.

Das Cachen funktioniert auch mit PARTdataManager, kann hier allerdings nicht effektiv betrieben werden, da der Cache jedesmal bei Neustart verloren geht. Daher sind die Werte linIndexCacheSize, sampleLineListCacheSize und pivotDistListCacheSize für die lokale Suche auf '0' gesetzt.

Im Folgenden finden Sie eine Beschreibung zu den einzelnen Caches:

  1. maxOpenIndexCount: Verhindert, dass der Index für jede Suche neu geöffnet werden muss.[20]Der eingestellte Wert entspricht der max. Anzahl von offenen Indices.

    Stellen Sie den Wert auf die Anzahl der zu durchsuchenden Kataloge ein (hier im Beispiel '100').

    maxOpenIndexCount=100
  2. sampleLineListCache:

    Cache für Fingerprints

    (Cache ist für alle Threads [entspricht in der Regel der Anzahl der Prozessorkerne] zusammen (vgl. $CADENAS_SETUP/partsol.cfg -> Block "SEARCHSERVER" -> Schlüssel "THREADS")

    Beispiel: 80% von 1GB zur Verfügung stehendem RAM (Angabe in KB)

    sampleLineListCacheSize=800000

    [Empfehlung: Für die Ersteinstellung 80%]

  3. linIndexCache: (nicht verwendet bei der Suche über Sketche)

    Cache für linearen Index

    Beispiel: 15% von 1GB zur Verfügung stehendem RAM (Angabe in KB)

    linIndexCacheSize=150000

    [Empfehlung: Für die Ersteinstellung 15%]

  4. pivotDistListCache: (nicht verwendet bei der Suche über Sketche)

    Cache für linearen Index:[21]

    (Cache ist für alle Threads [entspricht in der Regel der Anzahl der Prozessorkerne] zusammen (vgl. $CADENAS_SETUP/partsol.cfg -> Block "SEARCHSERVER" -> Schlüssel "THREADS")

    Beispiel: 5% von 1GB zur Verfügung stehendem RAM (Angabe in KB)

    pivotDistListCacheSize=50000

    [Empfehlung: Für die Ersteinstellung 5%]

1.7.5.9.5.1.2. Log-Datei auswerten - Beste Einstellungen finden

Die Einstellungen optimieren Sie am besten in 2 Schritten:

  1. Setzen Sie die Einstellungen im ersten Schritt nach einem allgemeinen Erfahrungswert:

    1. Bestimmen Sie, wieviel Prozent des Arbeitsspeichers Sie dem Cache zuweisen können, ohne andere Prozesse einzuschränken.

    2. Teilen Sie diesen Arbeitsspeicher in folgendem Verhältnis auf:

      • sampleLineListCacheSize: 80%

      • linIndexCacheSize: 15%

      • pivotDistListCacheSize: 5%

    3. Tragen Sie die Ergebniswerte in KB in die oben genannten Schlüssel ein.

    4. Setzen Sie den Schlüsselwert von maxOpenIndexCount auf die Anzahl der zu durchsuchenden Kataloge.

    [Hinweis] Hinweis

    Wenn Sie alle Werte auf '0' setzen, ist das Caching deaktiviert.

  2. Optimierung der Werte nach Auswertung der Log-Datei

    In der Konfigurationsdatei geomseach.cfg geben Sie an, wohin die Log-Datei gespeichert werden soll.

    [Hinweis] Hinweis

    Bei jeder Suche wird ein Bericht ausgegeben, wieviele Cache-Treffer es gab und wieviel Speicherplatz benötigt wurde. Die Werte werden nach der Suche nicht zurückgesetzt. Die Statistik läuft über alle Suchen!

    Bei Neustart des PARTdataManager, bzw. des Such-Servers wird die Log-Datei gelöscht.

    Um zu optimalen Einstellungen für die Geometrische Suche zu gelangen, beachten Sie bitte folgendes, bevor Sie die Log-Datei auswerten:

    • Führen Sie Suchen aus, die in etwa dem normalen Benutzerverhalten entsprechen, zum Beispiel bei der Auswahl der Suchvorlagen, Skizzensuche oder 3D-Suche, aber auch bei der Auswahl der Suchteile.

    • Lassen Sie die Suche im Idealfall mehrere Tage (Search-Server), bzw. über eine längere Benutzungsphase des PARTdataManagers laufen, bevor Sie die Log-Datei auswerten.

Beispiel zur Auswertung der Log-Datei

GeoIndexCache CacheHits 999 of 1000, 99%
GeoIndexCache Files 99 of 100, 99%

SampleLineListCache CacheHits 999 of 1000, 99%
SampleLineListCache Memory 400000 of 800000, 50%

LinIndexCache CacheHits 10617 of 10776, 98%
LinIndexCache Memory 90000 of 100000, 90%

PivotDistCache CacheHits 100 of 10000, 1%
PivotDistCache Memory 9999 of 10000, 99%

Beim GeoIndexCache müssen Sie nichts verändern. Dieser ist eingestellt auf die Anzahl der zu durchsuchenden Kataloge.

Bei den übrigen drei Caches gelten folgende Regeln: (Hier beispielhaft für SampleLineListCache erläutert. Die Aussagen sind auf LinIndexCache und PivotDistCache übertragbar.)

CacheHits

Die erste Zeile zeigt die Anzahl der Treffer = Maß für die Qualität

SampleLineListCache CacheHits 900 of 1000, 90%
  1. Der erste Wert (hier 900) zeigt die Anzahl der Zugriffe auf Elemente, die bereits im Cache vorhanden sind.

    Der zweite Wert (hier 1000) zeigt die Gesamtanzahl der Zugriffe.

  2. Der zweite Wert gibt das Verhältnis der beiden Werte in Prozent an. Hier 90%.

Memory

Die zweite Zeile zeigt die Nutzung des Arbeitsspeichers:

SampleLineListCache Memory 600000 of 800000, 75%
  1. Die ersten beiden Werte geben an, wieviel KB vom in der Konfigurationsdatei eingestellten KB-Wert benutzt wurden.

    Im Beispiel wurden 600000 KB von 800000 KB benutzt.

  2. Der zweite Wert gibt das Verhältnis der beiden Werte in Prozent an. Hier 75%.

CacheHits ist das Maß für die Qualität der Cache-Nutzung. Ist dieser Wert hoch, sind die Einstellungen Ok.

Memory gibt Auskunft, ob der in der Konfigurationsdatei eingestellte Wert richtig dimensioniert ist. Wenn man bei CacheHits 100% hat und bei Memory 10%, so wird man mit deutlich weniger Zuweisung ebenso gute CacheHits bekommen.

Sind die CacheHits niedrig (z.B. 10%) und der eingestellte Cache wird voll genutzt (z.B. 100%), so sollte versucht werden, durch ein Hochsetzten des Cache-Wertes die Trefferquote zu erhöhen.



[20] Er muss nur 1 Mal für jeden "Thread" [entspricht in der Regel der Anzahl der Prozessorkerne] geöffnet werden. Jeder THREAD hat seinen eigene Cache.

[21] Der lineare Index sortiert Teile nach Abständen zu bestimmten Referenzteilen. Diese heißen Pivots.