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 :
Pour plus d'informations, reportez-vous à Présentation de la limite de mémoire fixe.
Pour plus d'informations, reportez-vous à Présentation de la limite à ajustement dynamique.
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.
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.
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.
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 :
Le pourcentage de mémoire physique selon l'intervalle correspond à un nombre fixe d'octets.
Le pourcentage de mémoire physique disponible selon l'intervalle correspond à un nombre fixe d'octets.
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.
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.
Ajoutez la syntaxe appropriée au fichier :
Tableau 132.
(Facultatif) Pour préciser l'intervalle de la limite à ajustement dynamique, ajoutez la ligne suivante :
cacheadjustinterval=nombre_octets
(Facultatif) Pour préciser l'intervalle de nettoyage des anciennes versions des entrées et blocs, ajoutez la ligne suivante :
cachecleanupinterval=nombre_octets
(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.
Redémarrez le serveur eDirectory pour que les modifications soient prises en compte.
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.
(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
(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
(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