Amélioration des performances de eDirectory

Le paramètre le plus important quant à la performance de eDirectory est le cache. Dans les versions antérieures de NDS 8, vous pouviez spécifier une limite de cache de bloc pour réguler la quantité de mémoire utilisée par le eDirectory pour le cache. La valeur par défaut était de 8 Mo de RAM pour le cache.

Avec eDirectory 8.5, vous pouvez spécifier une limite de cache de bloc et une limite de cache d'entrée. Le cache de bloc, disponible dans les versions précédentes de NDS 8, met uniquement en cache des blocs physiques de la base de données. Le cache d'entrée, nouvelle fonction de eDirectory 8.5, met en cache les entrées logiques de la base de données. Le caching des entrées réduit la durée de traitement nécessaire à l'instanciation des entrées en mémoire depuis le cache de bloc.

Bien que les deux caches soient parfois redondants, chacun est conçu pour améliorer l'exécution d'opérations particulières. Le cache de bloc s'avère plus utile dans les opérations de mise à jour. Le cache d'entrée est plus utile dans des opérations qui exigent que l'arborescence eDirectory soit parcourue par lecture des entrées, par exemple lors d'une résolution de nom.

Les caches d'entrée et de bloc sont tous deux utiles pour améliorer l'exécution des requêtes. Le cache de bloc accélère la recherche dans les index. Le cache d'entrée accélère la récupération des entrées référencées dans un index.

Vous trouverez ci-après les paramètres par défaut de eDirectory 8.5 :


Répartition de la mémoire entre caches d'entrée et de bloc

Avec un cache d'entrée et un cache de bloc, la mémoire totale disponible pour le caching est partagée par les deux caches. Il s'agit par défaut d'une répartition égale. Pour conserver la quantité de cache de bloc disponible dans les versions antérieures de NDS 8, vous devez doubler la taille totale du cache de eDirectory. Si vous utilisez le cache pour améliorer les performances d'importation LDIF par exemple, vous pouvez doubler la taille totale du cache ou modifier les paramètres par défaut du cache. Pour modifier les paramètres par défaut du cache, reportez-vous à Configuration des limites à ajustement dynamique et de mémoire fixe.

Plus le nombre de blocs et d'entrées pouvant être mis en cache est élevé, meilleures sont les performances globales. L'idéal est de mettre en cache la base de données entière dans les caches de bloc et d'entrée, bien que cette procédure soit impossible pour les bases de données volumineuses. En règle générale, essayez, autant que possible, de vous rapprocher d'un rapport 1:1 entre cache de bloc et ensemble DIB. Concernant le cache d'entrée, il convient d'approcher le plus possible un rapport 1:2 ou 1:4. Pour obtenir des performances optimales, dépassez ces rapports.


Utilisation des paramètres par défaut du cache

eDirectory 8.5 propose deux méthodes pour contrôler la consommation de mémoire cache : une limite à ajustement dynamique et une limite de mémoire fixe. Les deux méthodes peuvent être utilisées, mais pas simultanément car elles sont mutuellement exclusives. La dernière méthode utilisée remplace systématiquement les paramètres définis précédemment.


Présentation de la limite à ajustement dynamique

Avec la limite à ajustement dynamique, le eDirectory ajuste périodiquement sa consommation de mémoire en réponse au niveau de consommation de mémoire des autres processus. Vous indiquez la limite sous la forme d'un pourcentage de la mémoire physique disponible. Sur la base de ce pourcentage, le eDirectory permet de calculer la nouvelle limite de mémoire à intervalles définis. La nouvelle limite de mémoire correspond au pourcentage de mémoire physique disponible à ce moment.

Outre le pourcentage, vous pouvez définir des seuils maximal et minimal. Le seuil correspond au nombre d'octets auxquels le eDirectory s'ajuste. Il peut représenter le nombre d'octets à utiliser ou à laisser disponibles. Le seuil minimal par défaut est de 16 Mo. Le seuil maximal par défaut est de 4 Go.

Si les limites de seuil minimal et maximal sont incompatibles, c'est le seuil minimal qui prévaut. Par exemple, indiquez les paramètres suivants :

Seuil minimal

8 Mo

Pourcentage de mémoire physique disponible

75

Seuil maximal

Conserver 10 Mo disponibles

Lorsque le eDirectory ajuste la limite de cache, il dispose de 16 Mo de mémoire physique disponible. eDirectory calcule une nouvelle limite de 12 Mo et vérifie si elle est comprise dans l'intervalle délimité par les seuils minimum et maximum. Dans cet exemple, le seuil maximal indique que 10 Mo doivent rester disponibles, et le eDirectory fixe donc la limite à 6 Mo. Cependant, le seuil minimal est de 8 Mo, c'est pourquoi le eDirectory adopte cette valeur comme limite finale.

La limite à ajustement dynamique nécessite également la définition d'un intervalle. L'intervalle par défaut est de 15 secondes. Plus l'intervalle est court, plus la consommation de mémoire se base sur les conditions réelles. Cependant, des intervalles trop courts ne sont pas nécessairement avantageux dans la mesure où le calcul du pourcentage alloue et libère davantage de mémoire.


Présentation de la limite de mémoire fixe

La limite de mémoire fixe est la méthode utilisée dans les versions antérieures de eDirectory pour réguler la consommation de mémoire. Choisissez l'une des méthodes suivantes pour définir la limite de mémoire fixe :


Élimination des données superflues du cache

NDS 8 crée plusieurs versions des blocs et des entrées dans son cache pour conserver l'intégrité des transactions. Les versions antérieures de NDS 8 ne retiraient pas ces blocs ni ces entrées lorsqu'ils n'étaient plus nécessaires. Dans eDirectory 8.5, un processus d'arrière-plan parcourt périodiquement le cache et élimine les anciennes versions. Cette procédure permet de réduire la consommation de mémoire cache. L'intervalle d'analyse par défaut est de 15 secondes.


Configuration des limites à ajustement dynamique et de mémoire fixe

  1. Ouvrez _NDSDB.INI dans un éditeur de texte.

    Sous NetWare®, ce fichier se trouve dans SYS:\NETWARE. Sous Windows* NT* et Windows 2000, il se trouve généralement dans \NOVELL\NDS\DIBFILES.

  2. Ajoutez la syntaxe appropriée au fichier :


    Tableau 132.

    Commande Explication sur la variable Définition

    cache=octets_cache

    Nombre fixe d'octets à utiliser.

    Définit une limite de mémoire fixe.

    Si vous souhaitez par exemple définir une limite fixe de 8 Mo, saisissez cache=8000000.

    cache=options_cache

    Vous pouvez préciser plusieurs options, dans l'ordre de votre choix, en les séparant par des virgules.

    • DYN

      Définit une limite à ajustement dynamique.

    • FIXE

      Définit une limite de mémoire fixe.

    • %:pourcentage

      Pourcentage de mémoire disponible ou physique à utiliser.

    • DISPO ou TOTAL

      Pourcentage de mémoire physique disponible ou totale (réservé à la limite de mémoire fixe).

    • MIN:nombre_octets

      Nombre minimum d'octets.

    • MAX:nombre_octets

      Nombre maximum d'octets.

    • LEAVE:nombre_octets

      Nombre minimum d'octets à laisser.

    Définit une limite de mémoire fixe ou à ajustement dynamique.

    Par exemple, pour définir une limite à ajustement dynamique égale à 75 % de la mémoire disponible et un minimum de 16 Mo, saisissez cache=DYN, %:75,MIN:16000000.

    Ou pour définir une limite fixe égale à 75 % de la mémoire physique totale et un minimum de 16 Mo, saisissez cache=HARD,%:75,MIN: 16000000.

  3. (Facultatif) Pour préciser l'intervalle de la limite à ajustement dynamique, ajoutez la ligne suivante :

    cacheadjustinterval=nombre_octets

  4. (Facultatif) Pour préciser l'intervalle de nettoyage des anciennes versions des entrées et blocs, ajoutez la ligne suivante :

    cachecleanupinterval=nombre_octets

  5. (Facultatif) Pour modifier la répartition du pourcentage entre cache de bloc et cache d'entrée, ajoutez la ligne suivante :

    blockcachepercent=pourcentage

    La variable pourcentage doit être comprise entre 0 et 100. Le pourcentage spécifié correspond au pourcentage de mémoire cache utilisé pour le cache de bloc. Le pourcentage restant est utilisé pour le cache d'entrée. Il est recommandé de ne pas choisir le pourcentage 0.

  6. Redémarrez le serveur eDirectory pour que les modifications soient prises en compte.


Configuration de limites à l'aide de DSTRACE

Si vous utilisez eDirectory pour NetWare, vous pouvez configurer la limite d'ajustement dynamique et la limite de mémoire fixe dans DSTRACE. Vous n'avez pas à redémarrer le serveur pour appliquer les modifications.

  1. (Facultatif) Pour définir une limite fixe, entrez la commande suivante depuis la console du serveur :

    SET DSTRACE=!MBquantité_de_RAM_à_utiliser_en_octets

    Si vous souhaitez par exemple définir une limite fixe de 8 Mo, saisissez :

    SET DSTRACE=!MB8388608

  2. (Facultatif) Pour définir une limite fixe calculée, entrez la commande suivante depuis la console du serveur. N'entrez que les options souhaitées.

    SET DSTRACE=!MHARD,AVAIL OR TOTAL,%:pourcentage,MIN:nombre_octets,MAX:nombre_octets,LEAVE:nombre_octets_à_laisser,NOSAVE

    Pour définir par exemple une limite fixe correspondant à 75 % de la mémoire physique totale et un minimum de 16 Mo, et pour ne pas enregistrer ces options dans le fichier de démarrage, entrez :

    SET DSTRACE=!MHARD,%:75,MIN:16777216,NOSAVE

  3. (Facultatif) Pour définir une limite à ajustement dynamique, entrez la commande suivante sur la console du serveur :

    SET DSTRACE=!MDYN,%:pourcentage,MIN:nombre_octets,MAX:
    nombre_octets,LEAVE:nombre_octets_à_laisser,
    NOSAVE

    Pour définir par exemple une limite dynamique égale à 75 % de la mémoire disponible et un minimum de 8 Go, entrez :

    SET DSTRACE=!MDYN,%:75,MIN:8388608