[Samba] Samba 4 LDAP/LDB search speed
Roel van Meer
roel at 1afa.com
Fri Oct 3 02:08:56 MDT 2014
Matthieu Patou writes:
>> We're still just testing things. We now have maybe 10 users in the database,
>> and nothing special at all, no additional anything.
>> I'm just worried, given the big difference in speed between queries in
>> OpenLDAP and queries in Samba 4, that the system won't perform very well if
>> Postfix and Zarafa are going to do a lot of LDAP queries.
>>
> The internal LDAP server is not super tuned right now, we could cache some
> responses for better performance.
Ok, that would be nice.
>> This is on quite ordinary hardware, with an otherwise idle system. If I
>> compare it to the values you posted it seems there is a lot of room for
>> improvement. That is good. Now the challenge is to find where the slowness
>> occurs. :)
> That's not too much surprising and in the same time that's not that bad.
>
> When you do --cross-ncs you are bypassing a lot of indexing stuff so usually
> you don't want to do that.
Ok, thanks. I did it because Steve Thompson kindly posted test results, and I
wanted to match his tests.
What would you say is a good test to do some profiling? Search for a single
entry (on indexed attributes) many times?
> So if you want to go further we need to understand what is the problem
> really, one way to do so is to recompile your samba with the developer mode
> so that we have symbols. Then I would start it with callgrind and then run
> your test to see what is the hot point, if you can share with me the output
> of callgrind.
We'll try to set up some proper tests and get back to you.
> Also I would tune a bit your request, your request is using indexes but the
> first one is quite general so we will end up loading a lot of objects,
> instead I would do the most restrictive attribute first and so on, it
> shouldn't be too complicated to patch samba to do so as well.
If I understand you correctly, a search filter like
(&(samaccountname=test)(objectclass=user))
is expected to be faster than
(&(objectclass=user)(samaccountname=test))
is that correct? (Provided both objectclass and the samaccountname are
indexed, of course.)
Thanks a lot,
Roel
More information about the samba
mailing list