4.1 FLAIM-Datenbank

Die Cache-Größe ist sicherlich der Faktor, der die Gesamtleistung von eDirectory am meisten beeinflusst. Je größer die Anzahl der Elemente (Blöcke und Einträge), die im Cache gespeichert werden können, desto besser ist die Gesamtleistung. Der Prozentsatz der im Cache gefundenen Blöcke oder Einträge wird als Trefferquote bezeichnet. Eine höhere Quote führt zu einer besseren Leistung. Die Trefferquote kann mit iMonitor angezeigt werden.

Der Block-Cache eignet sich am besten für Aktualisierungsoperationen. Der Eintrags-Cache eignet sich am besten für Vorgänge, die eine Suche nach einem Eintrag auf Basisebene ausführen. Für Suchen auf einer Ebene und für Suchen in Teilbäumen werden jedoch sowohl der Eintrags-Cache als auch der Block-Cache verwendet. Der Block-Cache wird zum Abrufen von Indexen verwendet. Erstellen Sie je nach Bedarf die richtige Art von Index. Weitere Informationen hierzu finden Sie unter Auswahl der Indexe.

Ein Fehler im Block-Cache kann zu einem Lesevorgang auf der Festplatte führen. Lesevorgänge auf der Festplatte sind kostenintensiv, können jedoch verhindert werden, indem ein Block vom Cache des Dateisystems abgerufen wird.

Die zum Speichern der gesamten Datenbank im Block-Cache erforderliche Menge Arbeitsspeicher entspricht nahezu der Größe der Datenbank auf der Festplatte. Zum Speichern der vollständigen Datenbank im Eintrags-Cache ist ein Arbeitsspeicher erforderlich, der zwei- bis viermal so groß ist wie die Datenbank auf der Festplatte. Wenn im System weniger Arbeitsspeicher verfügbar ist, versuchen Sie es mit einem kleineren Eintrags-Cache und einem größeren Block- oder Dateisystem-Cache.

Wenn die Lesevorgänge auf einen bestimmten Eintragssatz im Verzeichnis beschränkt sind, sollten Sie den Eintrags-Cache vergrößern, solange dies zu einer besseren Trefferquote für den Eintrags-Cache führt.

Wenn das Lesemuster zufällig ist und die DIB deutlich größer als der verfügbare Arbeitsspeicher, sollte der Block-Cache oder der Cache des Dateisystems größer sein als der Eintrags-Cache.

Die zur Leistungsoptimierung von eDirectory eingesetzten Methoden müssen stets empirisch getestet werden. Ein gutes Verhältnis zwischen Eintrags- und Block-Cache in suchintensiven Umgebungen ist 2:1. Vergewissern Sie sich, dass ausreichend Arbeitsspeicher für andere Prozesse übrig bleibt. Vermeiden Sie das Auslagern von Seiten, auch wenn dies mit einer Reduzierung der Größe des FLAIM-Cache verbunden ist.

Da FLAIM vorher zugewiesenes Caching bietet, wird der Speicher, der dem eDirectory-Cache zugewiesen ist, nie vom nativen Speicherverwalter des Betriebssystems fragmentiert.

4.1.1 Auswahl der Indexe

Mit Indexen kann die Leistung für Suchen, die auf eine Ebene oder einen Teilbaum bezogen sind, verbessert werden. Auch dynamische Gruppen nutzen Suchen, die auf eine Ebene bzw. einen Teilbaum bezogen sind. Indexe werden nicht für bereichsbezogene Suchen verwendet.

Da ein Index vom Typ „Präsenz“ nicht zwischen vorhandenen und nicht vorhandenen (gelöschten) Werten differenziert, wird diese Art Index hauptsächlich für interne Zwecke eingesetzt. Wenn Anwendungen eine Suchabfrage vom Typ „Präsenz“ ausführen, wird diese Art Index nie verwendet. Für Anwendungen sollten daher keine Indexe vom Typ „Präsenz“ erstellt werden.

Anwendungen können einen Index vom Typ „Wert“ erstellen, was für die meisten Suchen ausreichend ist. FLAIM kann einen Index vom Typ „Wert“ zum Ausführen von Präsenz- und Teilzeichenkettensuchen über die Attribute verwenden.

Ein Index vom Typ „Teilzeichenkette“ kann die an einem Attribut ausgeführten Aktualisierungen deutlich verzögern. Die Anzahl der für die Unterstützung eines Teilzeichenkettenindexes erforderlichen Indexblöcke ist im Vergleich zum Index vom Typ „Wert“ recht hoch. Dies bedeutet, dass für das Speichern im Cache hier ein größerer Block-Cache erforderlich ist. Erstellen Sie einen Teilzeichenkettenindex nur, wenn dies erforderlich ist. Für die meisten Suchen ist ein Index vom Typ „Wert“ ausreichend. Wenn jedoch bei Teilzeichenkettensuchen mit einem Index vom Typ „Wert“ keine angemessene Leistung erzielt wird, kann für diese Attribute ein Teilzeichenkettenindex erstellt werden.

Wenn ein Suchvorgang trotz des gewählten Index lange dauert, können Sie einen neueren Index vom Typ „Wert“ für eines der Attribute des Suchfilters einführen. Wählen Sie das Attribut aus, für das die Indexerstellung das beste Ergebnis liefert.

4.1.2 Optimierung für Aktualisierungen

Der Block-Cache eignet sich am besten für Aktualisierungsoperationen. Indexe sind auch im Block-Cache vorhanden. Indexe tragen zu schnelleren Suchen bei. Zu viele Indexe jedoch führen dazu, dass der Server mit ihrer Pflege ausgelastet ist. Indexe werden geändert, wenn Attributwerte geändert, hinzugefügt oder gelöscht werden. Bei umfangreichen Upload-Vorgängen können Indexe deaktiviert werden, um das Heraufladen zu beschleunigen.

Wenn sich das RFL-Verzeichnis und das DIB-Verzeichnis auf verschiedenen Datenträgern befinden, wird eine bessere Leistung erzielt.

Über den Parameter maxdirtycache kann die zulässige Grenze für die Antwortzeit bei einem Aktualisierungsvorgang gesteuert werden. Wenn als annehmbarer Grenzwert für die Serverantwort beispielsweise 5 Sekunden definiert wird und die Schreibgeschwindigkeit auf dem Datenträger im Zufallszugriffsmodus 20 MB pro Sekdunde beträgt, sollte maxdirtycache auf den Wert 20x5 = 100 MB festgelegt werden. Vergewissern Sie sich, dass der Block-Cache über ausreichend Platz für diese veränderten („dirty“) Blöcke verfügt. Weitere Informationen finden Sie in Abschnitt 5.2.2, Ändern der FLAIM-Cache-Einstellungen über _ndsdb.ini.