evaristojosec@yahoo.es wrote:
Full_Name: Evaristo Camarero Version: 2.4.x OS: Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (194.237.142.20)
Hi,
Working with slapd under heavy load it could be interesting to have TCP buffers size configurable at slapd application level instead of getting default OS values.
Some fast modifications in daemon.c file to achieve a hardcoded value for the sender buffer are:
int buf_size = 1572864; /* 1.5 Mb */ rc =setsockopt ( s, SOL_SOCKET, SO_SNDBUF, (int*)&buf_size,
sizeof(buf_size)); if(rc==-1) { Debug( LDAP_DEBUG_ANY, "slapd(%ld): " "setsockopt(SO_SNDBUF) failed errno=%d (%s)\n", (long) l.sl_sd, err, sock_errstr(err) ); } else { Debug( LDAP_DEBUG_ANY, "slapd(%ld): setsockopt(SO_SNDBUF) to %d\n", (long) l.sl_sd, buf_size, 0); }
Since you use Linux, you could try the kernel's tcp autotuning capabilities described in tcp(7) (other informative links are http://fasterdata.es.net/TCP-tuning/linux.html, http://www.kernelfaq.com/2007/11/tcp-auto-tuning.html). Of course, the possibility to manually enforce the size of the buffer may be useful in some cases, so a specific configuration option may deserve consideration.
p.