ldapadd vs slapadd

© Christian PAULUS. Document créé le 23 mai 2002 , mis à jour le 14 mars 2007.

Un seul arbre qui tombe fait plus de bruit qu'une forêt qui pousse. Proverbe africain

Accueil du site > Astuces > LDAP > ldapadd vs slapadd

Comparatif / openLDAP 2.0.14

Objectif : évaluer les performances de deux méthodes d’importation d’un fichier LDIF dans une base LDAP

Méthodologie : tests réalisés deux fois pour chaque méthode sur la commande ldapadd via un réseau TCP/IP (1 seul poste, en loopback, donc pas de perturbation éventuelle) et la commande slapadd (écriture disque en direct). PC sous Linux Mandrake 8.1, P3, 128 MRam, disque IDE, une toute petite machine en somme.

Fichier LDIF de test composé de 60000 (soixante milles) entrées, objectclass "person" (script php de génération).

Exemple d’une des entrées :

dn: sn=1022154367056879000,o=quesaco.org
objectclass: person
sn: 1022154367056879000
cn: 1022154367056879000 test entry
userPassword: xxxx
telephoneNumber: 0123456789
description: for test only

soit un poids de 195 octets par entrée, pour un total de 11700000 octets (11,157 Méga-octets)

A chaque fois, la base est remise à zéro, import de la racine et sa branche primaire. Après importation, un ’ls -al’ donne :

-rw------- 1 ldap ldap 8192 mai 23 15:07 dn2id.dbb
-rw------- 1 ldap ldap 8192 mai 23 15:07 id2entry.dbb
-rw------- 1 ldap ldap 8192 mai 23 15:07 nextid.dbb
-rw------- 1 ldap ldap 8192 mai 23 15:07 objectClass.dbb

Soit un total de place occupée par la base ’vide’ de 32768 octets.

Le fichier slapd.conf est très proche de celui de la distribution officielle. L’index est demandé dans slapd.conf sur "objectClass" uniquement (eq).

Méthode ldapadd (via TCP/IP)

Résultat : 15.85user 5.44system 35:36.17 0.9%CPU

-rw------- 1 ldap ldap 14520320 mai 23 14:38 dn2id.dbb
   -rw------- 1 ldap ldap 40771584 mai 23 14:38 id2entry.dbb
   -rw------- 1 ldap ldap 8192 mai 23 14:38 nextid.dbb
   -rw------- 1 ldap ldap 81920 mai 23 14:13 objectClass.dbb

Total place occupée par la base : 55382016 octets (52,81 Mo)

Avantages :
- Inutile de stopper le démon slapd (on passe via l’interface réseau, localhost) * Utilise peu la CPU.

Inconvénient :
- Lenteur remarquable

Méthode ldapadd (via TCP/IP) + option lastmod off

En complément du test précédent, on essaie ici l’option lastmod à off (slapd.conf), ce qui demande au serveur LDAP de ne pas enregistrer la date de modification pour chaque entrée.

Résultat : 16.19user 6.27system 29:54.35elapsed 1%CPU

   -rw------- 1 ldap ldap 14520320 mai 23 17:57 dn2id.dbb
   -rw------- 1 ldap ldap 26767360 mai 23 17:57 id2entry.dbb
   -rw------- 1 ldap ldap 8192 mai 23 17:57 nextid.dbb
   -rw------- 1 ldap ldap 81920 mai 23 17:37 objectClass.dbb

Plus léger que le test précédent pour un total de 41377792 (39 Mo). On gagne environ 20 % de temps passé.

Avantages et inconvénients : idem test précédent.

Méthode slapadd (direct par file system)

Résultat : 47.65user 5.32system 1:03.73elapsed 83%CPU

La commande doit être lancée sous les droits du possesseur de la base (ldap.ldap) ou sous root mais sans oublier de redonner les droits d’accès après import.

 -rw------- 1 ldap ldap 14503936 mai 23 15:10 dn2id.dbb
   -rw------- 1 ldap ldap 26783744 mai 23 15:10 id2entry.dbb
   -rw------- 1 ldap ldap 8192 mai 23 15:10 nextid.dbb
   -rw------- 1 ldap ldap 69632 mai 23 15:10 objectClass.dbb

Le poids de l’ensemble est bien plus léger que la version réseau, car slapadd ne rajoute pas la signature du créateur et la date de création à chaque entrée, ce qui est le cas par défaut en passant par l’entrée réseau.

Avantage :
- Beaucoup plus rapide que sa version via le réseau ( x 30 )

Inconvénient :
- La commande doit être lancée base fermée
- Il est impératif de re-attribuer les droits d’accès aux fichiers de la base avant de lancer le démon.

Résumé

Ldapadd est plus sécurisé par son accès réseau. Il conviendra à de petits imports. Par contre, pour les fichiers de taille importante, slapadd est incontournable mais demande la doigté d’un administrateur, ou une interface bien adaptée.

Plussoyez !

Les forums sont fermés.