Hi all,
I've got a problem with OpenLdap since I'm trying to insert 1,5 Million of entries into LDAP. OpenLDAP crash with "bdb: malloc: Cannot allocate memory" when approximately 950 000 entries are inserted. My computer got 2GB of RAM and here is my slapd.conf :
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
####################################################################### # Global Directives:
# Features to permit #allow bind_v2
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema #include /etc/schema/samba.schema include /etc/ldap/schema/bvs.schema
# Where the pid file is put. The init.d script # will not stop the server if you change this. pidfile /var/run/slapd/slapd.pid
# List of arguments that were passed to the server argsfile /var/run/slapd/slapd.args
# Read slapd.conf(5) for possible values loglevel none
# Where the dynamically loaded modules are stored modulepath /usr/lib/ldap moduleload back_bdb moduleload syncprov
# logout idle clients after 10 seconds idletimeout 10
# The maximum number of entries that is returned for a search operation sizelimit unlimited
#Specify the maximum number of pending requests for an anonymous session conn_max_pending_auth 300
# The tool-threads parameter sets the actual amount of cpu's that is used # for indexing. tool-threads 2
####################################################################### # Specific Backend Directives for hdb: # Backend specific directives apply to this backend until another # 'backend' directive occurs backend bdb
####################################################################### # Specific Backend Directives for 'other': # Backend specific directives apply to this backend until another # 'backend' directive occurs #backend <other>
####################################################################### # Specific Directives for database #1, of type hdb: # Database specific directives apply to this databasse until another # 'database' directive occurs database bdb
dbnosync # updates are allowed to remain pending cachesize 1500000
index sn,givenName pres,eq index ENTPersonJointure eq
#overlay syncprov
#syncprov-checkpoint 100 10 #syncprov-sessionlog 100
# The base of your directory in database #1 suffix "dc=bvs,dc=fr"
# rootdn directive for specifying a superuser on the database. This is needed # for syncrepl. rootdn "cn=Manager,ou=ENTPerson,dc=bvs,dc=fr" rootpw collaba
# Where the database file are physically stored for database #1 directory /var/lib/ldap
# The dbconfig settings are used to generate a DB_CONFIG file the first # time slapd starts. They do NOT override existing an existing DB_CONFIG # file. You should therefore change these settings in DB_CONFIG directly # or remove DB_CONFIG and restart slapd for changes to take effect.
# For the Debian package we use 2MB as default but be sure to update this # value if you have plenty of RAM dbconfig set_cachesize 0 1024000 0 dbconfig set_flags DB_TXN_NOSYNC
# Sven Hartge reported that he had to set this value incredibly high # to get slapd running at all. See http://bugs.debian.org/303057 for more # information.
# Number of objects that can be locked at the same time. dbconfig set_lk_max_objects 1500 # Number of locks (both requested and granted) dbconfig set_lk_max_locks 1500 # Number of lockers dbconfig set_lk_max_lockers 1500
# Indexing options for database #1 index objectClass eq
# Save the time that the entry gets modified, for database #1 lastmod off
# Checkpoint the BerkeleyDB database periodically in case of system # failure and to speed slapd shutdown. checkpoint 512000 30
# Where to store the replica logs for database #1 # replogfile /var/lib/ldap/replog
# Basic ACL (deprecated in favour of ACLs in /etc/openldap/slapd.access.conf) #access to attr=userPassword # by self write # by anonymous auth # by dn="uid=root,ou=People,dc=example,dc=com" write # by * none
# ACL for "Enseignant" profile only (=> can modify all "userPassword" of its own College) access to dn.regex="^cn=(.*),ou=entperson,ou=(.*),ou=(.*),dc=bvs,dc=fr$" attrs=givenName by set.regex="user/entPersonProfils & [cn=Enseignant_$2,ou=entgroup,ou=$2,ou=$3,dc=bvs,dc=fr]" write by * read
# ACL for "Administrateur" profile only (=> can modify all data of its own College) access to dn.regex="^(.*),ou=(.*),ou=(.*),dc=bvs,dc=fr$" by set.regex="user/entPersonProfils & [cn=Administrateur_$2,ou=entgroup,ou=$2,ou=$3,dc=bvs,dc=fr]" write by * read
# ACL for "Eleve" profile only (=> can modify only its own "userPassword") access to attrs=entPersonDateNaissance by self write by * read
access to * by * read
####################################################################### # Specific Directives for database #2, of type 'other' (can be hdb too): # Database specific directives apply to this databasse until another # 'database' directive occurs #database <other>
# The base of your directory for database #2 #suffix "dc=debian,dc=org"
What am I doing wrong ?
Regards.
--On Tuesday, June 16, 2009 9:40 AM +0200 Florian Genaudet florian.genaudet@gmail.com wrote:
What am I doing wrong ?
Usage questions should be directed to openldap-software@openldap.org.
--Quanah
--
Quanah Gibson-Mount Principal Software Engineer Zimbra, Inc -------------------- Zimbra :: the leader in open source messaging and collaboration