Drupal 7 使用Drupal 7和简单的ldap模块时,slapd使用了太多的CPU

Drupal 7 使用Drupal 7和简单的ldap模块时,slapd使用了太多的CPU,drupal-7,openldap,Drupal 7,Openldap,我们配置了一个Drupal7实例,其中模块指向本地OpenLDAP(在Ubuntu12.04.4LTS服务器上) 当多个用户登录到该站点并使用它时,计算机的CPU就会失控:slapd占用了近100%的CPU 结果是Drupal站点的响应速度非常慢(一页超过15秒…) 在/var/log/syslog中,我们可以看到: Feb 20 14:56:53 cas slapd[2029]: <= bdb_equality_candidates: (uid) not indexed Feb 20 1

我们配置了一个Drupal7实例,其中模块指向本地OpenLDAP(在Ubuntu12.04.4LTS服务器上)

当多个用户登录到该站点并使用它时,计算机的CPU就会失控:
slapd
占用了近100%的CPU

结果是Drupal站点的响应速度非常慢(一页超过15秒…)

/var/log/syslog
中,我们可以看到:

Feb 20 14:56:53 cas slapd[2029]: <= bdb_equality_candidates: (uid) not indexed
Feb 20 14:56:53 cas slapd[2029]: <= bdb_equality_candidates: (mail) not indexed
Feb 20 14:56:53 cas slapd[2029]: <= bdb_equality_candidates: (member) not indexed
Feb 20 14:56:53 cas slapd[2029]: <= bdb_equality_candidates: (cn) not indexed

2月20日14:56:53 cas slapd[2029]:我们必须为此创建正确的索引

如图所示,首先停止服务:

sudo service slapd stop
sudo slapindex -F /etc/ldap/slapd.d
sudo chown -R openldap:openldap /var/lib/ldap
sudo service slapd start
sudo service apache2 restart
然后编辑
/etc/ldap/slapd.d/cn=config/olcDatabase={1}hdb.ldif
并添加(就在第
行olcDbIndex:objectClass eq
之后):

然后重新编制索引,设置正确的权限并重新启动服务:

sudo service slapd stop
sudo slapindex -F /etc/ldap/slapd.d
sudo chown -R openldap:openldap /var/lib/ldap
sudo service slapd start
sudo service apache2 restart

建议使用正确的用户重新编制索引:“sudo-u openldap slapindex”,这样可以避免chownAlso,注意,使用此方法必须手动调整{1}hdb.ldif中的CRC