Amélioration des performances de eDirectory sur les systèmes Linux, Solaris, AIX et HP-UX

Les sections suivantes fournissent des informations sur les moyens d'améliorer les performances de eDirectory sur des systèmes UNIX :


Mise au point de précision du serveur eDirectory

Novell eDirectory sous Linux et sous Solaris utilise une réserve de threads à ajustement dynamique pour répondre aux requêtes des clients. La réserve de thread s'ajuste automatiquement et fournit des performances optimales dans la plupart des cas. Cependant, vous pouvez éviter le retard provoqué par le démarrage des threads en cas de charge soudaine sur le serveur, en configurant les paramètres suivants dans le fichier /etc/nds.conf.

Paramètre Description et paramètres recommandés

n4u.server.idle-threads

Nombre minimum de threads (indépendamment de l'activité).

La valeur de ce paramètre doit être fixée en fonction de la charge moyenne du client, afin de réduire le délai nécessaire à la production de nouveaux threads en condition d'activité normale du client.

n4u.server.max-threads

Nombre maximum de threads.

La valeur de ce paramètre doit être définie en fonction du nombre maximal de clients qui doivent être pris en charge simultanément, ainsi que des recommandations suivantes :

  • eDirectory requiert 16 threads au minimum.
  • Un thread pour 255 connexions LDAP (thread de surveillance).
  • Un thread pour 4 clients simultanés (thread de travail).

n4u.server.start-threads

Nombre de threads qui démarrent en même temps que eDirectory.

La valeur de ce paramètre doit être fixée en fonction de la charge moyenne du client, afin de réduire le délai nécessaire à la production de nouveaux threads en condition d'activité normale du client.


Optimisation du cache de eDirectory

Novell eDirectory utilise un caching persistant, afin que les modifications apportées à un serveur soient conservées dans un vecteur. Si le serveur se bloque lors de modifications, eDirectory se charge plus rapidement et synchronise les modifications en quelques secondes dès que le serveur a redémarré. Novell eDirectory utilise un modèle de retour à l'état initial avec un fichier journal pour exécuter un repositionnement avec restauration actualisée sur les transactions en cas de défaillance du système.

Les paramètres de eDirectory commencent avec 16 Mo de cache, dont 50 % sont alloués au caching de bloc et le reste au cache d'enregistrement. Passé un délai de 15 minutes, eDirectory modifie ses seuils de cache afin d'initialiser jusqu'à 51% de la mémoire disponible pour le cache, en laissant au moins 24 Mo pour le système d'exploitation. Cet algorithme n'est utilisé que si le système d'exploitation de l'hôte prend en charge l'appel qui vous permet de déterminer la quantité de mémoire libre disponible.

Vous pouvez optimiser votre cache eDirectory par les moyens suivants :


Utilisation d'une taille de mémoire vive fixe pour les systèmes UNIX

Bien que l'algorithme ci-dessus fonctionne correctement avec Windows et NetWare, il n'en va pas de même avec les systèmes UNIX. Dans les systèmes UNIX, la mémoire libre disponible indiquée par le système d'exploitation est inférieure à celle des autres systèmes d'exploitation en raison de la manière dont UNIX utilise la mémoire libre pour le caching interne des blocs du système de fichiers, l'exécution fréquente de programmes, de bibliothèques, etc. En outre, sous UNIX, les bibliothèques ne restituent généralement pas au système d'exploitation la mémoire libérée.

C'est pourquoi nous vous recommandons d'allouer une quantité fixe de RAM au cache.

Fixez la quantité de mémoire vive pour les systèmes UNIX en utilisant l'une des méthodes suivantes :


Création manuelle d'un fichier .ini
  1. Créez un fichier appelé _ndsdb.ini dans le répertoire qui contient déjà les fichiers de la base de données eDirectory (ensemble DIB) ; il s'agit généralement du répertoire /var/nds/dib.

  2. Ajoutez au fichier _ndsdb.ini les paramètres listés ci-dessous :

    Paramètre Description

    blockcachepercent=50

    Définit le pourcentage de cache alloué au caching de blocs de base de données.

    cacheadjustinterval=15

    Définit l'intervalle, en secondes, utilisé par eDirectory pour évaluer son utilisation de la mémoire libre et ajuster la taille globale du cache.

    cachecleanupinterval=15

    Définit l'intervalle, en secondes, utilisé par eDirectory pour écrire les blocs de cache altérés sur le disque.

    cache=16777216

    Définit la limite stricte (en octets).


Utilisation de Novell iMonitor
  1. Cliquez sur Configuration de l'agent Agent Configuration button.

  2. Cliquez sur Cache de base de données et affichez les informations suivantes :

    Informations sur le cache de base de données Description

    Taille maximale

    Taille maximale en ko que peut avoir le cache spécifié.

    Taille actuelle

    Taille actuelle en ko du cache spécifié.

    Éléments mis en cache

    Nombre d'éléments contenus dans le cache spécifié.

    Anciennes versions mises en cache

    Nombre d'anciennes versions contenues dans le cache spécifié. Les anciennes versions des éléments contenus dans le cache sont conservées par souci de cohérence des transactions de lecture dans la base de données. Autrement dit, si un thread se trouve dans une transaction de lecture et un autre dans une transaction d'écriture, les anciennes versions des blocs modifiés par l'opération d'écriture sont conservées à l'intention de l'utilisateur qui effectue la lecture. Cet utilisateur a ainsi la garantie d'obtenir des résultats cohérents durant toute sa transaction de lecture, même si des modifications sont effectuées dans l'intervalle.

    Taille des anciennes versions

    Taille en ko des anciennes versions des éléments contenus dans le cache.

    Correspondances

    Nombre d'accès réussis à un élément à partir du cache spécifié.

    Recherches des correspondances

    Nombre d'éléments examinés avant un accès réussi à un élément à partir du cache spécifié. Le rapport de recherche de correspondances permet de mesurer l'efficacité de la recherche dans le cache. Normalement, il doit avoisiner 1:1.

    Anomalies

    Nombre de fois où un élément introuvable dans le cache a dû être obtenu dans un cache de niveau inférieur ou à partir du disque.

    Recherches des anomalies

    Nombre d'éléments examinés avant qu'il soit établi que l'élément voulu ne se trouvait pas dans le cache spécifié. Le rapport de recherche d'anomalies permet de mesurer l'efficacité de la recherche dans le cache. Normalement, il doit avoisiner 1:1.

  3. Choisissez parmi les options suivantes :

    Option Description

    Ajustement dynamique

    Permet à la base de données eDirectory d'ajuster dynamiquement la quantité de mémoire système qu'il convient de réserver au cache, compte tenu des besoins estimés et des paramètres indiqués ci-dessous.

    Pourcentage d'ajustement du cache

    Pourcentage de la mémoire disponible qui peut être utilisé à la fois pour les caches d'enregistrement et de bloc.

    Contraintes de taille du cache

    Lors de l'ajustement dynamique, veillez à respecter les contraintes spécifiées. N'utilisez pas pour le cache une quantité de mémoire inférieure au chiffre indiqué, ni supérieure à la quantité totale de mémoire disponible moins le chiffre indiqué.

    Limite stricte

    Quantité exacte de mémoire système à utiliser pour le cache.

    Taille maximale du cache

    Taille en ko des caches d'enregistrement et de bloc combinés.

    Pourcentage du cache de bloc

    Pourcentage de la mémoire système disponible pour le cache qui doit être affecté au cache de bloc. Le pourcentage restant est alloué au cache d'enregistrement.

    Intervalle d'ajustement du cache

    Cet intervalle ne s'applique que si l'ajustement dynamique est activé. Il détermine la fréquence d'ajustement de la taille du cache, en fonction du pourcentage et des contraintes spécifiés.

    Intervalle de nettoyage du cache

    Détermine à quelle fréquence les anciennes versions inutilisées sont supprimées du cache.

    Paramètres de cache permanents

    Lorsque cette option est sélectionnée, toutes les modifications soumises par le biais de iMonitor deviennent définitives et remplacent les paramètres précédemment enregistrés ainsi que les valeurs par défaut du système.

  4. Cliquez sur Envoyer.


Paramètres de cache eDirectory

Par défaut, eDirectory utilise un cache dynamique. Si vous disposez de suffisamment de mémoire vive pour augmenter la taille du cache eDirectory, vous pouvez considérablement améliorer les performances de eDirectory pour les bases de données volumineuses en allouant plus de mémoire vive au cache eDirectory.

Les paramètres listés dans le tableau suivant peuvent être ajustés en vue d'améliorer les performances de eDirectory :

Paramètre du cache eDirectory Description

blockcachepercent=valeur

Définit le pourcentage de cache alloué au caching de blocs de base de données. La valeur par défaut est 50.

cachecleanupinterval=valeur

Définit l'intervalle, en secondes, utilisé par eDirectory pour écrire les blocs de cache altérés sur le disque. La valeur par défaut est 15.

cacheadjustinterval=valeur

Définit l'intervalle, en secondes, utilisé par eDirectory pour évaluer son utilisation de la mémoire libre et ajuster la taille globale du cache. La valeur par défaut est 15.

cache=valeur

Définit la limite stricte, en octets, de la mémoire que eDirectory peut utiliser pour le caching.

cache=leave:valeur

Indique le nombre minimal d'octets à laisser.

min:valeur

Indique la taille minimale du cache en octets.

max:valeur

Indique la taille maximale du cache en octets.

Selon l'algorithme, le paramètre par défaut de Novell eDirectory est le suivant :

cache=dyn,%:51,min:16777216,max:0,leave:0

En d'autres termes :

Vous pouvez également configurer eDirectory pour qu'il utilise un pourcentage de la mémoire totale. Pour ce faire, spécifiez le cache comme illustré ci-dessous :

cache=hard,total,%:pourcentage_de_mémoire_totale_en_octets

Optimisation des données de chargement par lot

Les performances de chargement par lot à l'aide de l'utilitaire d'importation, de conversion et d'exportation (ICE) peuvent été altérées par différents facteurs. Les principaux facteurs sont la gestion inadaptée des entrées/sorties de disque et l'allocation de mémoire insuffisante pour le cache Novell eDirectory.

Si eDirectory est la seule application du serveur, vous pouvez définir le cache afin qu'il utilise jusqu'à 80 % de la mémoire totale. Tout cache alloué sera utilisé en définitive. Une taille de mémoire cache supérieure améliorera les performances de eDirectory sur les données non rémanentes.

IMPORTANT :  évitez d'assigner au cache plus de 40 % de la mémoire totale, si le serveur héberge des services ou des applications autres que eDirectory. La plus petite taille de mémoire cache testée est 0 et la plus grande est 3 Go. Pour déterminer la taille du cache appropriée, vous devez connaître les besoins en mémoire des autres processus exécutés sur le serveur, ainsi que la quantité de mémoire cache sur disque nécessaire. Nous vous conseillons d'essayer différentes tailles pour trouver le meilleur équilibre.

Pour optimiser les performances de chargement par lot, allouez un pourcentage supérieur du cache eDirectory pour le cache de bloc. Nous vous recommandons de choisir une valeur de 80 % pour le cache de bloc. Cette valeur peut être réinitialisée, une fois l'opération terminée.

L'utilisation de iMonitor est le moyen le plus rapide de modifier le paramètre blockcachepercentage. Pour ce faire, suivez les instructions figurant dans Utilisation de Novell iMonitor.


Optimisation de la taille de transaction LBURP

La taille de transaction LBURP définit le nombre d'enregistrements qui sont envoyés au serveur LDAP par l'utilitaire ICE, durant une même transaction. En augmentant cette valeur, vous pouvez améliorer les performances du chargement par lot, en supposant toutefois que vous avez défini une mémoire suffisante et que l'augmentation n'entraîne pas de conflit d'entrées/sorties.

La taille de transaction par défaut est de 25, ce qui est suffisant pour les petits fichiers LDIF (moins de 100 000 opérations), mais non pour un nombre important d'enregistrements. La taille de transaction LBURP peut être définie entre 1 et 1 000.


Modification de la taille de transaction

Pour modifier la taille de transaction, changez la valeur requise dans le paramètre n4u.ldap.lburp.transize du fichier /etc/nds.conf.

Dans l'idéal, une taille de transaction élevée assure les meilleures performances. Cependant, vous ne devez pas attribuer des valeurs arbitrairement élevées à la taille de transaction pour les raisons suivantes :


Mise au point du système Solaris pour Novell eDirectory

Les sections suivantes expliquent comment régler le kernel, le réseau et le système de fichiers Solaris :

IMPORTANT :  avant de commencer, vérifiez que vous avez appliqué les correctifs recommandés au système d'exploitation Solaris. Pour plus d'informations, reportez-vous à "Installing or Upgrading Novell eDirectory on Solaris (Installation ou mise à niveau de Novell eDirectory sous Solaris) dans le manuel Novell eDirectory 8.7.3 Installation Guide (Guide d'installation de Novell eDirectory 8.7.3).


Mise au point du kernel Solaris

Pour optimiser les performances de eDirectory sous Solaris, définissez les variables kernel suivantes dans le fichier /etc/system:

Paramètre Description

set maxphys=1048576

Nombre maximum d'octets pouvant être transférés par transaction SCSI.

set md_maxphys=1048576

Nombre maximal d'octets pouvant être transférés par transaction SCSI si vous utilisez disksuite, vol_maxio ou vxvm.

set ufs:ufs_LW=1/128e_de_la_memoire_disponible

Limite d'octets en attente pour un même fichier, en deça de laquelle la variable de condition sur les autres processus en sommeil est basculée.

set ufs:ufs_HW=1/64e_de_la_memoire_disponible

Nombre d'octets en attente sur la base d'un seul fichier.

ctcp:taille_hachage_conn_tcp=8192

Nombre d'entrées de hachage de connexion allouées pour localiser rapidement les structures de données du kernel associées à la connexion TCP. (Il est possible de porter cette valeur à 262 144 selon le nombre de clients LDAP.)


Mise au point du réseau Solaris

Vous pouvez améliorer les performances de recherche LDAP à l'aide de la commande Solaris ndd. La syntaxe de commande suivante vous permet d'analyser et de modifier les paramètres réglables qui influent sur les opérations et le comportement du réseau :

ndd -set /dev/tcp nom_variable valeur_variable

Les valeurs recommandées pour les variables sont fournies dans le tableau ci-dessous :

Paramètre Description

tcp_conn_req_max_q: 1024

Le " q " correspond ici à la file d'attente dans laquelle sont conservés les sockets complets jusqu'à émission d'une acceptation par l'application.

tcp_time_wait_interval: 60000

Définit (ici réduit) le délai d'attente.

tcp_xmit_hiwat: 64000

tcp_xmit_lowat: 64000

Ajuste la taille minimale et la taille maximale de la fenêtre d'envoi TCP.

tcp_slow_start_initial: 2

Change de 1 en 2 le nombre de premiers paquets de transmission.


Optimisation du système de fichiers Solaris

Les performances de Novell eDirectory sous Solaris peuvent être améliorées si le système de fichiers Solaris est correctement mis au point, surtout pour les opérations de chargement par lot de données dans l'annuaire. La mise au point du système de fichiers pour eDirectory est similaire à celle d'une base de données. Pour plus d'informations sur le système de fichiers Solaris, reportez-vous au site Web Sunworld*.