Skip to Content.
Sympa Menu

fr - Re: [sympa-fr] Grosse liste

Subject: Pour les administrateurs de serveurs de listes utilisant le logiciel Sympa

List archive

Chronological Thread  
  • From: LALOT Dominique <address@concealed>
  • To: Jean-Hugues BELPOIS <address@concealed>
  • Cc: address@concealed
  • Subject: Re: [sympa-fr] Grosse liste
  • Date: Fri, 30 Nov 2007 10:19:56 +0100

Jean-Hugues BELPOIS a écrit :
Salut dom,

Merci de tes infos, j'ai fait un test de durée chez moi et regarde ce que ça donne :

[root@listes scripts]# time ldapsearch -h annuaire.univ-brest.fr -x -s one -b 'ou=people,dc=univ-brest,dc=fr' '(eduPersonPrimaryAffiliation=student)' uid > trace
real 0m2.984s

Y'a pas photo, je vais voir avec mon collègue qui s'occupe du ldap si il peut faire quelques chose.

a+

jhb
Ce thread est un peu hors sujet, car c'est du tuning ldap, mais je vois qu'il y a une demande..

C'est un serveur lame dell bi-xeon 2Go avec le RAID1 pas très performant de DELL. Le serveur est encore en SARGE et ldap est accessible en IPV6.
Il fait le ldap master et l'interface de gestion des comptes en PHP sous apache.
slapd 2.3.32 sur le master

1. Ne pas sysloguer ldap ou mettre: local4.* -/var/log/ldap.log
2. DB_CONFIG à mettre dans le rep de la base (Je n'y ai plus touché depuis des années. Il y a probablement mieux.)
set_cachesize 0 40000000 1
set_flags DB_LOG_AUTOREMOVE
set_tas_spins 1
set_lg_regionmax 262144
3. J'évite que sendmail/postfix soit en mode LDAP (trop de requêtes récursives sans cache). On recopie en base bdb locales

Un dump ascii et un restore va bien aussi est il ne prend que 60 sec avec les options NOSYNC (set_flags DB_TXN_NOSYNC) que je ne garde que pour le chargement du ldif.
slapadd -q -w -l fic.ldif ne prend alors que très peu de temps et permet de réindexer proprement. Il tourne une fois par semaine en cron.

Et surtout, il faut mettre les index qui vont bien! Si tu interroges edupersonaffiliation sans les index, les perfs ne seront pas là.

Si ça peut aider...

annuaire:base# ll
total 210356
-rwx------ 1 ldap ldap 4096 2007-11-30 00:30 alock
-rwx------ 1 ldap ldap 17649664 2007-11-30 05:38 cn.bdb
-rw------- 1 ldap ldap 16384 2007-11-25 02:48 __db.001
-rw------- 1 ldap ldap 50003968 2007-11-25 02:48 __db.002
-rw------- 1 ldap ldap 294912 2007-11-25 02:48 __db.003
-rw------- 1 ldap ldap 368640 2007-11-25 02:48 __db.004
-rw------- 1 ldap ldap 24576 2007-11-25 02:48 __db.005
-rwx------ 1 ldap ldap 95 2006-04-25 18:04 DB_CONFIG
-rwx------ 1 ldap ldap 8671232 2007-11-30 05:38 dn2id.bdb
-rwx------ 1 ldap ldap 765952 2007-11-30 05:38 eduPersonAffiliation.bdb
-rwx------ 1 ldap ldap 1396736 2007-11-30 10:13 entryCSN.bdb
-rwx------ 1 ldap ldap 1110016 2007-11-30 05:38 entryUUID.bdb
-rwx------ 1 ldap ldap 856064 2007-11-30 05:38 gidNumber.bdb
-rwx------ 1 ldap ldap 91619328 2007-11-30 10:13 id2entry.bdb
-rw------- 1 ldap ldap 10485760 2007-11-28 18:00 log.0000000002
-rw------- 1 ldap ldap 10485760 2007-11-30 10:15 log.0000000003
-rwx------ 1 ldap ldap 1413120 2007-11-30 05:38 mail.bdb
-rwx------ 1 ldap ldap 1441792 2007-11-30 05:38 mailLocalAddress.bdb
-rwx------ 1 ldap ldap 122880 2007-11-30 09:58 mailRoutingAddress.bdb
-rwx------ 1 ldap ldap 4182016 2007-11-30 05:38 objectClass.bdb
-rwx------ 1 ldap ldap 9441280 2007-11-30 05:38 sn.bdb
-rwx------ 1 ldap ldap 888832 2007-11-30 05:38 supannAffectation.bdb
-rwx------ 1 ldap ldap 196608 2007-11-30 05:38 supannEmpId.bdb
-rwx------ 1 ldap ldap 1114112 2007-11-30 03:38 U2CodeEtape.bdb
-rwx------ 1 ldap ldap 249856 2007-11-30 10:13 U2datecharte.bdb
-rwx------ 1 ldap ldap 20480 2007-11-29 23:33 U2DateFin.bdb
-rwx------ 1 ldap ldap 16384 2007-11-28 09:33 U2EntApp.bdb
-rwx------ 1 ldap ldap 233472 2007-11-30 05:38 U2labo.bdb
-rwx------ 1 ldap ldap 933888 2007-11-30 09:28 U2site.bdb
-rwx------ 1 ldap ldap 1429504 2007-11-30 05:38 uid.bdb
-rwx------ 1 ldap ldap 1449984 2007-11-30 05:38 uidNumber.bdb


----- Original Message ----- From: "LALOT Dominique" <address@concealed>
To: "Jean-Hugues BELPOIS" <address@concealed>
Cc: <address@concealed>
Sent: Thursday, November 29, 2007 4:48 PM
Subject: Re: [sympa-fr] Grosse liste


Jean-Hugues BELPOIS a écrit :
Bonjour à tous,

Je travaille sur la préparation d'une "grosse" liste (grosse au sens université de Brest, ça va peut-être vous sembler "moyen" ou "petit") dans laquelle seraient abonnés tous les étudiants de l'année, soit 17 000 environ. Cette liste piocherait ses abonnés dans le LDAP via un filtre.

Quand je tente de configurer cette future liste depuis l'interface web, au moment de la mise à jour des données, c'est très long et le serveur web finit par m'envoyer une erreur 500 et sympa un mail avec :

L'utilisateur xxx a été confronté à une erreur interne
(Interface web - ACTION : Command process - LIST : address@concealed) :
Impossible de construire les membres de la liste 'testcri'
Consultez les logs pour plus de détails.

Puis

Sympa n'a pas pu mettre à jour la liste des membres à partir des sources de données externes ; la base de données ou l'annuaire LDAP ne sont probablement pas intérogeables.
Consultez les logs de Sympa pour plus de précisions.

C'est une question de volume d'abonnés semble t'il car si je diminue le filtre LDAP pour cibler plutôt un UFR (environ 4000 abonnés), c'est peu long, 4/5 secondes, mais ça marche. A votre avis le problème vient de :

L'interface web, en modifiant le config ça devrait aller ?
Du LDAP qui est à la ramasse en face de la demande de sympa ?
De sympa qui coince sur ces 17 000 abonnés ?

Oui ça tourne. J'ai eu un peu peur la première fois, mais ça a bien tenu
la charge.

include_ldap_query
attrs mail
ssl_ciphers ALL
filter (objectclass=univmedetud) # ou version supann
edupersonaffiliation=student
name ldap UnivMed
host annuaire.univmed.fr,anubis.univmed.fr
use_ssl no
suffix ou=people,dc=univmed,dc=fr
timeout 10
ssl_version sslv3
select first
scope one

le suffix et le scope te font gagner du temps.
Sur cette machine si je tape cette commande:
root@listes:~#time ldapsearch -H ldap://annuaire.univmed.fr -b
'ou=people,dc=univmed,dc=fr' -s one -x edupersonaffiliation=student uid
>trace

real 0m0.913s
user 0m0.520s
sys 0m0.192s

root@listes:~#tail trace
# g707560, people, univmed.fr
dn: uid=g707560,ou=people,dc=univmed,dc=fr
uid: g707560

# search result
search: 2
result: 0 Success

# numResponses: 29962
# numEntries: 29961


J'ai donc les 29000 entrées en moins d'une seconde. Il faut un annuaire
ldap qui soit bien paramétré. Le soucis que tu pourrais avoir, c'est
l'option limit sur le nombre d'entrées rendues par ldap. Des index
manquants etc..
L'annuaire ldap qui logue sur le syslog sans l'option -/var/log/ldap.log
(écritures asynchrones) (juste des idées). Ton problème est du coté LDAP.

root@listes:~#grep 'list alias created' /etc/mail/sympa_aliases | wc -l
735

735 listes, la plupart avec des filtres ldap, et ça marche sans soucis.

A+

Dom



--
Dominique LALOT
Ingenieur Systeme et Reseaux
http://annuaire.univmed.fr/showuser.php?uid=lalot




Archive powered by MHonArc 2.6.19+.

Top of Page