Le paramètre le plus important en matière de performances de eDirectory est le cache. Dans les versions antérieures des NDS®, vous pouviez spécifier une limite de cache de blocs pour réguler la quantité de mémoire utilisée par l'annuaire pour le cache. La valeur par défaut était de 8 Mo de RAM pour le cache.
Avec eDirectory 8.5 ou version ultérieure, vous pouvez spécifier une limite de cache de blocs et une limite de cache d'entrées. Disponible dans les versions précédentes des NDS, le cache de blocs met uniquement en cache des blocs physiques de la base de données. Nouvelle fonction de eDirectory 8.5, le cache d'entrées 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 blocs.
Bien que ces deux caches soient parfois redondants, chacun est conçu pour améliorer l'exécution d'opérations particulières. Le cache de blocs s'avère plus utile dans les opérations de mise à jour. Le cache d'entrées 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ées et de blocs sont tous deux utiles pour améliorer l'exécution des requêtes. Le cache de blocs accélère la recherche dans les index. Le cache d'entrées 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.8 :
Pour plus d'informations, reportez-vous à la section Présentation de la limite de mémoire stricte.
Pour plus d'informations, reportez-vous à la section Présentation de la limite à ajustement dynamique.
Avec un cache d'entrées et un cache de blocs, 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 blocs disponible dans les versions antérieures des 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 à la section Configuration des limites à ajustement dynamique et de mémoire stricte.
Plus le nombre de blocs et d'entrées susceptibles d'ê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 blocs et d'entrées, 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 blocs et ensemble DIB. Concernant le cache d'entrées, il convient d'approcher le plus possible un rapport 1:2 ou 1:4. Pour obtenir des performances optimales, dépassez ces rapports.
eDirectory propose deux méthodes pour contrôler la consommation de mémoire cache : une limite à ajustement dynamique et une limite de mémoire stricte. Les deux méthodes peuvent être utilisées, mais pas simultanément car elles s'excluent mutuellement. La dernière méthode utilisée remplace systématiquement les paramètres définis précédemment.
Avec la limite à ajustement dynamique, 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, 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 un seuil maximal et minimal. Le seuil correspond au nombre d'octets auxquels 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. Vous pouvez, par exemple, indiquer les paramètres suivants :
Seuil minimal : |
8 Mo |
Pourcentage de mémoire physique |
|
Seuil maximal : |
Conserver 10 Mo disponibles |
Lorsque eDirectory ajuste sa limite de cache, la mémoire physique disponible est de 16 Mo. eDirectory calcule une nouvelle limite de 12 Mo et vérifie si elle est comprise dans l'intervalle délimité par les seuils minimal et maximal. Dans cet exemple, le seuil maximal indique que 10 Mo doivent rester disponibles et eDirectory fixe donc la limite à 6 Mo. Cependant, le seuil minimal est de 8 Mo, c'est pourquoi 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 stricte 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 stricte :
Le pourcentage de mémoire physique pour l'intervalle correspond à un nombre fixe d'octets.
Le pourcentage de mémoire physique disponible pour l'intervalle correspond à un nombre fixe d'octets.
Les NDS 8 créent plusieurs versions des blocs et des entrées dans leur cache afin de préserver l'intégrité des transactions. Les versions antérieures des NDS 8 ne supprimaient pas ces blocs et entrées lorsqu'ils n'étaient plus nécessaires. Dans eDirectory 8.8, 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.
Vous pouvez configurer dynamiquement les limites à ajustement dynamique et de mémoire stricte en utilisant l'une des deux méthodes suivantes :
Cliquez sur Configuration de l'agent .
Cliquez sur Cache de base de données et consultez les informations suivantes :
Choisissez parmi les options suivantes :
Cliquez sur Soumettre.
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 :
(Facultatif) Pour préciser l'intervalle de la limite à ajustement dynamique, ajoutez la ligne suivante :
cacheadjustinterval=nombre_secondes
(Facultatif) Pour préciser l'intervalle de nettoyage des anciennes versions des entrées et des blocs, ajoutez la ligne suivante :
cachecleanupinterval=nombre_secondes
(Facultatif) Pour modifier la répartition du pourcentage entre cache de blocs et cache d'entrées, 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 blocs. Le pourcentage restant est utilisé pour le cache d'entrées. 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 à ajustement dynamique et la limite de mémoire stricte via DSTrace. Vous n'avez pas besoin de redémarrer le serveur pour que les modifications soient prises en compte.
(Facultatif) Pour définir une limite stricte, entrez la commande suivante sur la console du serveur :
SET DSTRACE=!MBquantité_de_RAM_à_utiliser_en_octets
Par exemple, pour définir une limite stricte de 8 Mo, entrez
SET DSTRACE=!MB8388608
(Facultatif) Pour définir une limite stricte calculée, entrez la commande suivante sur 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
Par exemple, pour définir une limite stricte de 75 % de la mémoire physique totale et un minimum de 16 Mo, et pour indiquer de 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
Par exemple, pour définir une limite dynamique de 75 % de la mémoire disponible et un minimum de 8 Mo, entrez
SET DSTRACE=!MDYN,%:75,MIN:8388608
Pour plus d'informations sur la configuration matérielle et logicielle de base du serveur LDAP, les paramètres de réglage et les conseils en matière d'organisation d'annuaire, consultez le site Web How to Configure and Optimize eDirectory LDAP Servers (Configuration et optimisation des serveurs LDAP eDirectory).
eDirectory utilise de la mémoire pour le cache de la base de données et pour l'utilisation de l'annuaire. Il s'agit de réserves de mémoire allouées distinctes. Le moteur de l'annuaire utilise au besoin la mémoire des réserves de mémoire allouées dans le système d'exploitation. La base de données utilise une réserve de cache définie par les paramètres ci-dessous. En général, plus la quantité de cache de base de données allouée à eDirectory est grande, plus les performances sont optimales. Cependant, étant donné que eDirectory utilise la mémoire système disponible pour ses tampons, si des clients effectuent des requêtes qui nécessitent le renvoi d'ensembles de données volumineux, il peut être nécessaire de réduire la taille du cache de la base de données afin de disposer de suffisamment de mémoire système pour que l'annuaire puisse gérer l'élaboration des réponses aux requêtes.
Le moteur de base de données utilise le cache de base de données pour stocker les blocs les plus récemment utilisés. Ce cache possède initialement une taille fixe de 16 Mo. Sa taille peut être modifiée à partir de la ligne de commande dans les versions d'origine de eDirectory. Par exemple, la commande suivante définit une taille de 80 Mo pour le cache de base de données de eDirectory :
set dstrace=!mb 80000000
Vous pouvez également définir un fichier nommé _ndsdb.ini dans le répertoire sys:\_netware d'un serveur NetWare ou dans le répertoire contenant les fichiers de base de données eDirectory des environnements Windows (normalement, répertoire_installation\nds\dbfiles) ainsi que Linux et UNIX (normalement \var\nds\dib). Ce fichier texte doit simplement contenir une ligne telle que :
cache=80000000
N'ajoutez aucun espace autour du signe égal (=).
Le cache de eDirectory 8.8 peut être initialisé avec une limite stricte, comme c'était le cas dans les versions précédentes. De plus, les limites supérieure et inférieure peuvent être définies soit sous forme de nombres fixes soit sous forme de pourcentage de la mémoire disponible. Les paramètres de contrôle d'allocation dynamique permettent à la taille du cache d'augmenter ou de diminuer selon l'utilisation. Si les paramètres de configuration appropriés sont définis, le cache de base de données augmente ou diminue de façon dynamique, selon les besoins des autres ressources système.
L'édition du fichier _ndsdb.ini permet de contrôler manuellement l'utilisation de la mémoire de la base de données. Le format de commandes du fichier INI est le suivant :
cache=octets_cache # Set a hard memory limit
D'autres formats sont présentés dans le tableau suivant :
Si une limite stricte est indiquée et que l'administrateur souhaite définir le cache de base de données en fonction d'un pourcentage de mémoire, il peut choisir entre un pourcentage de mémoire totale ou de mémoire disponible. Les limites dynamiques font toujours référence à un pourcentage de mémoire disponible. Voici des exemples de commandes valides dans le fichier _ndsdb.ini.
L'exemple de limite dynamique suivant équivaut à 75 % de la mémoire disponible, avec un minimum de 16 Mo, et 32 Mo pour le système d'exploitation :
cache=DYN,%:75,MIN:16000000, LEAVE 32000000
L'exemple de limite stricte suivant équivaut à 75 % de la mémoire physique totale, avec un minimum de 18 Mo et un maximum de 512 Mo :
cache=HARD, TOTAL,%:75,MIN:18000000, MAX 512000000
L'exemple suivant est un exemple de format ancien de limite stricte équivalant à 8 Mo :
cache=8000000
Le cache de base de données est réparti entre le cache de blocs et le cache d'enregistrement. Le cache de blocs contient des blocs de données et d'index qui mettent en miroir le stockage sur le disque. Le cache d'enregistrement garde en mémoire des représentations des objets et des attributs de l'annuaire. Si vous effectuez des mises à jour ou des ajouts dans l'annuaire, utilisez le paramètre du cache de blocs. Si vous effectuez principalement des lectures, utilisez le cache d'enregistrement. Vous risquez d'endommager les deux caches si vous effectuez de nombreuses mises à jour séquentielles sans allouer une taille de cache correcte. À moins que vous n'apportiez des modifications spécifiques, le cache est alloué pour 50 % au cache de blocs et pour 50 % au cache d'enregistrement. L'option blockcachepercent peut être incluse dans le fichier _ndsdb.ini pour indiquer le pourcentage de cache alloué à la mise en cache des blocs d'index et de données. (La valeur par défaut est 50 %.) Le cache restant est utilisé pour les entrées.
Par exemple, pour indiquer 60 % de cache de blocs et 40 % de cache d'enregistrement, entrez :
blockcachepercent=60
Ne choisissez pas l'intégralité du cache pour le cache de blocs ou le cache d'enregistrement, au détriment de l'autre type de cache. En règle générale, n'allouez pas plus de 75 % de votre mémoire cache à l'un des deux types de cache.
La configuration du cache de base de données peut également être contrôlée à l'aide de Novell iMonitor.
Bien que la taille du cache soit dynamique selon la quantité de mémoire disponible, la commande DSTRACE peut quand même être utilisée dans des environnements personnalisés.