Amélioration des performances de eDirectory sur les systèmes Linux et Solaris

Les sections suivantes fournissent des informations sur la façon 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 Solaris* utilise une réserve de thread à 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.


Tableau 133.

Paramètre Description

n4u.server.max-threads

Nombre maximal absolu de threads

n4u.server.idle-threads

Nombre de threads qui doivent rester inactifs

n4u.server.start-threads

Nombre de threads à démarrer préalablement

Définissez la valeur du paramètre n4u.server.max-threads sur la base du nombre maximal de clients simultanés qui doivent être desservis. Novell eDirectory nécessite environ 16 threads pour une utilisation régulière en interne. Vous pouvez ajouter un thread pour 255 connexions LDAP afin de surveiller les connexions LDAP. Ajoutez un thread supplémentaire tous les quatre clients à desservir simultanément. Définissez la valeur des paramètres n4u.sserver.idle-threads et n4u.server.start-threads sur la base de la charge client moyenne.

Certains objets Serveur LDAP peuvent être membres d'un groupe LDAP. Tous les serveurs LDAP partagent les propriétés de l'objet Groupe LDAP (par exemple, assignations de classes et d'attributs, utilisateur proxy, etc.). Par conséquent, si vous disposez d'une liste de vos propres assignations de classes et d'attributs à ajouter, vous pouvez les ajouter au sein d'un groupe et faire de tous les serveurs un membre de ce groupe.


Optimisation du cache de eDirectory

eDirectory utilise une mise en cache de longue durée de façon à ce que les modifications apportées à un serveur soient conservées dans un vecteur. Si le serveur se bloque lors de modifications, le eDirectory se charge plus rapidement et synchronise les modifications en quelques secondes dès que le serveur est redémarré. Novell eDirectory utilise un modèle de rollback avec un fichier journal pour exécuter une commande roll forward pour les transactions en cas de défaillance du système.

Novell eDirectory utilise environ 50 % de la mémoire libre disponible pour le cache, ce qui laisse au moins 24 Mo pour le système d'exploitation. Cet algorithme est utilisé uniquement si l'hôte du système d'exploitation prend en charge l'appel qui vous permet de déterminer la quantité de mémoire libre disponible. Bien que cet algorithme fonctionne bien pour Windows et NetWare, il ne fonctionne pas pour des systèmes UNIX. Sur des systèmes UNIX, la mémoire libre disponible consignée par le système est inférieure à celle des autres systèmes d'exploitation en raison de la façon dont le système d'exploitation UNIX utilise la mémoire libre pour la mise en cache interne des blocs du système de fichiers, l'exécution fréquente de programmes, de bibliothèques, etc. En plus de cette allocation de mémoire, les bibliothèques sous UNIX ne renvoient normalement pas la mémoire libérée vers le système d'exploitation.

C'est pourquoi nous vous recommandons d'allouer une quantité fixe de RAM au cache. Pour ce faire, créez un fichier nommé _ndsdb.ini dans le répertoire de l'ensemble DIB (par défaut /var/nds/dib), puis indiquez une valeur pour le paramètre de cache dans le fichier. Novell eDirectory répartit ce cache en interne de manière équitable entre le cache de bloc et le cache d'enregistrement. Le paramètre de cache peut être configuré soit sur une valeur absolue soit sur l'ensemble suivant de paramètres séparés par des virgules :


Tableau 134.

Paramètres de cache eDirectory Description

dyn

Indique que la mise au point du cache dynamique est effective (par défaut).

fixe

Indique une limite fixe.

dispo

Indique le pourcentage de mémoire disponible à utiliser.

total

Indique le pourcentage de mémoire totale à utiliser.

%:pourcentage

Indique le pourcentage à utiliser.

leave:octets

Indique le nombre minimal d'octets à laisser.

min:octets

Indique la taille minimale du cache en octets.

max:octets

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,avail,%:50,min:8388508,max:4294967295,leave:25165824

La signification est la suivante :

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

cache=hard,total,%:pourcentage_mémoire_totale_en_octets


Optimisation du chargement en bloc de données

Par défaut, le 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. Pour plus d'informations, reportez-vous à Optimisation du cache de eDirectory. La taille du cache a une grande influence sur les performances du chargement en bloc de données avec l'utilitaire d'importation/d'exportation. (Une plus grande taille de cache améliore la vitesse.)

La taille du cache est définie à l'aide de la commande suivante sur la ligne de commande de ndstrace :

set ndstrace = !m[ko en hexadécimal]

ou

set ndstrace = !mb[octets]

Par exemple, la commande set ndstrace=!m4F00 alloue environ 20 Mo de mémoire vive au cache eDirectory. Si le eDirectory est la seule application du serveur, vous pouvez définir le cache afin qu'il utilise jusqu'à 80 % de la mémoire totale.

IMPORTANT :  Évitez de définir la taille du cache sur plus de 40 % de la mémoire totale si le serveur héberge des services ou des applications autres que le eDirectory.

La plus petite taille de mémoire cache testée est 0 et la plus grande est 2<:hs>Go. Pour déterminer la taille du cache approprié, il faut 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. Il est suggéré d'essayer une variété de tailles pour trouver le meilleur équilibre. Si le eDirectory est pratiquement la seule application, allouez autant de mémoire cache que possible. Tout cache alloué sera utilisé en définitive. Une taille de mémoire cache supérieure améliorera les performances de eDirectory avec des données non rémanentes.

Pour optimiser les performances du chargement en bloc de données, allouez un pourcentage supérieur de cache Novell eDirectory pour le cache de bloc. Nous vous recommandons de choisir une valeur égale à 80 % pour le cache de bloc. Pour ce faire, modifiez la valeur du paramètre blockcachepercentage dans le fichier _ndsdb.ini situé dans le répertoire /var/nds. Vous devez définir le paramètre de cache avant d'indiquer une valeur pour le paramètre blockcachepercentage.


Optimisation de la taille de transaction LBURP

La taille de la transaction LBURP détermine le nombre d'enregistrements envoyés à partir du client d'importation/d'exportation Novell® vers le serveur LDAP en un seul paquet LBURP. Vous pouvez augmenter la taille de la transaction pour être sûr que les opérations d'ajout multiples puissent être exécutées en une seule requête. Vous pouvez modifier la taille de la transaction en indiquant la valeur requise pour le paramètre n4u.ldap.lburp.transize dans /etc/nds.conf. La taille de transaction par défaut est 25. Cette valeur par défaut est appropriée pour de petits fichiers LDIF, mais pas pour un grand nombre d'enregistrements. Vous pouvez fournir une taille de transaction comprise dans la plage de limite fixe allant de 1 à 250.

Dans l'idéal, une taille de transaction plus élevée assure des performances plus rapides. Cependant, la taille de transaction ne doit pas être définie de façon arbitraire sur des valeurs élevées pour les raisons suivantes :


Mise au point du système Solaris pour Novell eDirectory

Vérifiez que vous avez appliqué tous les correctifs recommandés pour le système d'exploitation Solaris. Pour plus d'informations, reportez-vous à Solaris.

Les sections suivantes fournissent des informations sur le mode de mise au point du kernel, du réseau et du système de fichiers de Solaris :


Mise au point du kernel Solaris

Vous pouvez configurer les variables de kernel suivantes dans le fichier /etc/system du système Solaris afin d'optimiser les performances de Novell eDirectory :

set priority_paging=1
set maxphys=1048576
set md_maxphys=1048576
set ufs:ufs_LW=1/128_de_mémoire_disponible
set ufs:ufs_HW=1/64_de_mémoire_disponibleset tcp:conn_tcp_taille_hachage=8192 (cette valeur peut atteindre 262144 en fonction du 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 ndd de Solaris, qui vous permet d'analyser et de modifier les paramètres réglables qui affectent les opérations et le comportement du réseau. Pour ce faire, utilisez la syntaxe suivante :

ndd -set /dev/tcp nom_variable valeur_variable

Les valeurs recommandées pour les variables que vous pouvez définir sont fournies ci-dessous :

tcp_conn_req_max_q: 1024
tcp_close_wait_interval: 60000
tcp_xmit_hiwat: 32768
tcp_xmit_lowat: 32768
tcp_slow_start_initial: 2


Mise au point 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 le chargement en bloc de données du répertoire. La mise au point du système de fichiers pour Novell 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.