mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-02-07 05:51:48 +00:00
def0d22cc5
Quite a lot of people have been complaining about option contstats not working correctly anymore since about 1.4. The reason was that one reason for the significant performance boost between 1.3 and 1.4 was the ability to forward data between a server and a client without waking up the stream manager. And we couldn't afford to force sessions to constantly wake it up given that most of the people interested in contstats are also those interested in high performance transmission. An idea was experimented with in the past, consisting in limiting the amount of transmissible data before waking it up, but it was not usable on slow connections (eg: FTP over modem lines, RDP, SSH) as stats would be updated too rarely if at all, so that idea was dropped. During a discussion today another idea came up : ensure that stats are updated once in a while, since it's the only thing that matters. It happens that we have the request channel's analyse_exp timeout that is used to wake the stream up after a configured delay, and that by definition this timeout is not used when there's no more analyser (otherwise the stream would wake up and the stats would be updated). Thus here the idea is to reuse this timeout when there's no analyser and set it to now+5 seconds so that a stream wakes up at least once every 5 seconds to update its stats. It should be short enough to provide smooth traffic graphs and to allow to debug outputs of "show sess" more easily without inflicting too much load even for very large number of concurrent connections. This patch is simple enough and safe enough to be backportable to 1.6 if there is some demand. |
||
---|---|---|
.. | ||
design-thoughts | ||
internals | ||
lua-api | ||
51Degrees-device-detection.txt | ||
acl.fig | ||
architecture.txt | ||
close-options.txt | ||
coding-style.txt | ||
configuration.txt | ||
cookie-options.txt | ||
DeviceAtlas-device-detection.txt | ||
gpl.txt | ||
haproxy.1 | ||
intro.txt | ||
lgpl.txt | ||
linux-syn-cookies.txt | ||
lua.txt | ||
management.txt | ||
netscaler-client-ip-insertion-protocol.txt | ||
network-namespaces.txt | ||
proxy-protocol.txt | ||
queuing.fig | ||
WURFL-device-detection.txt |