[Date Prev][Date Next]
Re: (ITS#3394) slapd select->poll for >1024 connections
>Full_Name: Volker Lendecke
>OS: SuSE Linux 8.2
>Submission from: (NULL) (220.127.116.11)
>slapd standard compile does not support more than about 1000 client connections,
>as it uses the select system call. volker-lendecke-041114.diff in
>ftp.openldap.org/incoming is a patch to convert the main slapd loop from select
>to poll. With this patch slapd does not need to take care of FD_SETSIZE
Just following up to this ITS for completeness' sake.
On most systems select() and poll() have the same underlying
implementation. (E.g., on Linux poll() is implemented using select(), on
Solaris select() is implemented using poll().) So there's no incentive
to add support for poll() in slapd when select() already works. As for
the FD_SETSIZE issue, if you compile with -DOPENLDAP_FD_SETSIZE=xxxx you
can use as many descriptors as you want.
CVS HEAD has been patched to support Linux epoll(), which also has no
FD_SETSIZE limitations and is supposed to scale better, but my current
results show that it performs more slowly than select() (On SuSE 9.1). I
suspect that the previously published studies have a traffic mix that is
not representative of normal LDAP traffic. At any rate, it bears further
study, and it's worthwhile to continue the ongoing discussion on the
openldap-devel mailing list.
I am now closing this ITS.
-- Howard Chu
Chief Architect, Symas Corp. Director, Highland Sun
Symas: Premier OpenSource Development and Support