[PATCH] Measure parallel performance and use standard process model in ldap

Andrew Bartlett abartlet at samba.org
Wed Apr 5 10:42:34 UTC 2017


On Wed, 2017-04-05 at 12:00 +0200, Stefan Metzmacher wrote:
> Am 05.04.2017 um 06:36 schrieb Andrew Bartlett via samba-technical:
> > The attached patches make our LDAP server multi-process.
> > 
> > This brings performance gains and losses.  Essentially if we have
> > one
> > client binding and going away, strictly one at a time, then there
> > is a
> > significant overhead.  However, with multiple clients we get to use
> > multiple CPUs and it is worth it if there are multiple incoming
> > connections or the connections are long-lasting. 
> > 
> > We hope to fix up and restore the prefork process model in the
> > future,
> > but this isn't on the cards right now, and our users need the extra
> > speed.
> > 
> > Please review/push the attached patch and the performance tests. 
> 
> I guess this should be on top of the ldb/tdb patches?

I've tested it with and without, and it is viable both ways.  Naturally
I want both in, the perf tests first ideally. 

> Is a server with these and the ldb/tdb patches able to handle
> a zarafa server which serves about 500-1000 users which make use of
> the webmail interface? We have a customer were we used a OpenLDAP
> proxy in front of the samba servers to handle the load.
> The proxy was able to deliver responses under 10 msecs,
> while samba needed about 350 msecs. The problem is that the proxy
> db gets corrupted every few days.

I've not tested it with that, but it was the thread from a similar user
that made me pick this back up (it has been in my backlog for a while).

What I will say is this.  On my workstation, the tests did:

test_500_concurrent_unindexed_search_10_workers(ad_dc_ntvfs)":
94.185378

that is 180ms per search

With just this patch I get:
test_500_concurrent_unindexed_search_10_workers(ad_dc_ntvfs)":
52.460954,

That is 100ms per search.  Still not 10ms, but then there is also a
bind in there.  Also still not scaling linearly with CPUs. 

With the ldb patch, we get:
test_500_concurrent_unindexed_search_10_workers(ad_dc_ntvfs)":
13.458421,

That is 26ms per search, much closer to what we need. 

If I had a client suffering the consequences of the corrupted DB on the
Zarafa proxy, I would want to try these patches :-)

Thanks,

Andrew Bartlett

-- 
Andrew Bartlett                       http://samba.org/~abartlet/
Authentication Developer, Samba Team  http://samba.org
Samba Developer, Catalyst IT          http://catalyst.net.nz/services/samba




More information about the samba-technical mailing list