haproxy/src
Willy Tarreau 4827fd2a7e [OPTIM] stream_sock: reduce the default number of accepted connections at once
By default on a single process, we accept 100 connections at once. This is too
much on recent CPUs where the cache is constantly thrashing, because we visit
all those connections several times. We should batch the processing slightly
less so that all the accepted session may remain in cache during their initial
processing.

Lowering the batch size from 100 to 32 has changed the connection rate for
concurrencies between 5-10k from 67 kcps to 94 kcps on a Core i5 660 (4M L3),
and forward rates from 30k to 39.5k.

Tests on this hardware show that values between 10 and 30 seem to do the job fine.
2011-07-24 16:12:27 +02:00
..
acl.c [BUG] config: don't crash on empty pattern files. 2011-03-09 10:22:30 +01:00
appsession.c [MINOR] Make appsess{,ion}_refresh static 2011-06-25 21:07:01 +02:00
auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00
backend.c [BUG] log: retrieve the target from the session, not the SI 2011-03-27 19:53:06 +02:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffers.c [OPTIM] buffers: uninline buffer_forward() 2011-03-28 16:25:58 +02:00
cfgparse.c [MINOR] Consistently free expr on error in cfg_parse_listen() 2011-07-18 10:21:23 +02:00
checks.c [MINOR] Add down termination condition 2011-06-21 22:10:56 +02:00
cttproxy.c [BUG] cttproxy: socket fd leakage in check_cttproxy_version 2010-05-09 21:19:08 +02:00
dumpstats.c [MINOR] Allow showing and clearing by key of string stick tables 2011-06-17 11:39:30 +02:00
ev_epoll.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_kqueue.c [BUG] O(1) pollers should check their FD before closing it 2009-05-10 10:18:54 +02:00
ev_poll.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_select.c [MEDIUM] pollers: don't wait if a signal is pending 2009-05-10 09:57:21 +02:00
ev_sepoll.c [MEDIUM] fd: merge fd_list into fdtab 2009-10-18 08:20:26 +02:00
fd.c [BUG] debug: report the correct poller list in verbose mode 2010-11-19 13:25:10 +01:00
freq_ctr.c [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.c [MINOR] frontend: add a make_proxy_line function 2011-03-20 10:15:22 +01:00
haproxy.c [OPTIM] stream_sock: reduce the default number of accepted connections at once 2011-07-24 16:12:27 +02:00
hdr_idx.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
i386-linux-vsys.c [OPTIM] linux: add support for bypassing libc to force using vsyscalls 2010-11-14 17:09:33 +01:00
lb_chash.c [MEDIUM] hash: add support for an 'avalanche' hash-type 2010-11-29 07:28:16 +01:00
lb_fwlc.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_map.c [BUG] url_param hash may return a down server 2010-03-12 06:22:16 +01:00
log.c [MINOR] Add down termination condition 2011-06-21 22:10:56 +02:00
memory.c [MEDIUM] ensure we don't recursively call pool_gc2() 2009-04-21 02:17:45 +02:00
pattern.c [MEDIUM] IPv6 support for stick-tables 2011-03-29 01:09:14 +02:00
peers.c [BUG] session: risk of crash on out of memory (1.5-dev regression) 2011-07-20 00:22:54 +02:00
pipe.c [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
proto_http.c [MEDIUM] http: add support for 'cookie' and 'set-cookie' patterns 2011-07-01 16:16:17 +02:00
proto_tcp.c [MINOR] Consistently use error in tcp_parse_tcp_req() 2011-07-18 10:21:23 +02:00
proto_uxst.c [CLEANUP] unix sockets : move create_uxst_socket() in uxst_bind_listener() 2010-11-14 17:21:44 +01:00
protocols.c [MEDIUM] Enhance message errors management on binds 2010-11-05 10:34:07 +01:00
proxy.c [MEDIUM] http: add support for "http-no-delay" 2011-05-30 18:42:41 +02:00
queue.c [MINOR] Add active connection list to server 2011-06-21 22:00:12 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c [MINOR] prepare req_*/rsp_* to receive a condition 2010-01-28 18:10:50 +01:00
server.c [CLEANUP] remove many #include <types/xxx> from C files 2008-07-16 10:30:42 +02:00
session.c [MINOR] session: try to emit a 500 response on memory allocation errors 2011-07-24 16:12:25 +02:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
signal.c [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
standard.c [BUG] stats: support url-encoded forms 2011-05-31 22:44:28 +02:00
stick_table.c [BUG] fix binary stick-tables 2011-05-09 23:30:58 +02:00
stream_interface.c [CLEANUP] stream_interface: use inline functions to manipulate targets 2011-03-10 23:32:17 +01:00
stream_sock.c [OPTIM] stream_sock: don't use splice on too small payloads 2011-05-30 18:42:41 +02:00
task.c [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
time.c [MINOR] add curr_sec_ms and curr_sec_ms_scaled for current second. 2009-03-05 16:56:16 +01:00
uri_auth.c [REORG] http: move the http-request rules to proto_http 2011-03-13 22:00:24 +01:00