I'm having a bit of difficulty interperting the act/fe/be/srv connection numbers in my option tcplog (definitions from manual appended below.)
Sample entry from my logs: Jan 20 14:33:49 lbtest1 haproxy[25582]: AAAA:34456 [20/Jan/2010:14:33:47.826] LDAPFarm LDAPFarm/dp2 0/0/1227 202 -- 29/29/29/13/0 0/0 haproxy is usually only one process at a time, unless I use the unrecommended nbproc at more than 1, or I'm in the middle of a -sf/-st and there's a second process that started running and the first is still waiting to close out existing connections. actconn mentions process. Is actconn across all pools (eg: all listen stanzas)? So it's equal to the number of connections across LDAP, LDAPS, WWW, services that I'm serving, as well as incoming requests from clients for all those services? Shouldn't it be equal to feconn+srvconn? So feconn for LDAP + srvconn for LDAP + feconn for LDAPS + srvconn for LDAPS....? Is feconn only for that particular listen? So it's only for just the LDAP, or only just the LDAPS, etc service I'm serving? If I had 10 requests each of LDAP, LDAPS, and WWW, the actconn would be 60 (30 total incoming requests and 30 total server connections serving those requests) but feconn would be 10? Is beconn total across all backends for a particular listen? I'm not sure, because the docs say "the backend" implying just one specific backend server (in my example log entry "dp2"). But the docs later state "includes the total number of concurrent connections active on servers", implying it's across all the backend servers for a specific listen statement. beconn includes both the number of active connections to all (or one) backend server(s) plus all the requests "backed-up" in haproxy that haven't yet been sent to the backend servers, right? srvconn is only the number of actual active connections for a single specific backend server (again in this case "dp2")? Thank you, PH - "actconn" is the total number of concurrent connections on the process when the session was logged. It it useful to detect when some per-process system limits have been reached. For instance, if actconn is close to 512 when multiple connection errors occur, chances are high that the system limits the process to use a maximum of 1024 file descriptors and that all of them are used. See section 3 "Global parameters" to find how to tune the system. - "feconn" is the total number of concurrent connections on the frontend when the session was logged. It is useful to estimate the amount of resource required to sustain high loads, and to detect when the frontend's "maxconn" has been reached. Most often when this value increases by huge jumps, it is because there is congestion on the backend servers, but sometimes it can be caused by a denial of service attack. - "beconn" is the total number of concurrent connections handled by the backend when the session was logged. It includes the total number of concurrent connections active on servers as well as the number of connections pending in queues. It is useful to estimate the amount of additional servers needed to support high loads for a given application. Most often when this value increases by huge jumps, it is because there is congestion on the backend servers, but sometimes it can be caused by a denial of service attack. - "srv_conn" is the total number of concurrent connections still active on the server when the session was logged. It can never exceed the server's configured "maxconn" parameter. If this value is very often close or equal to the server's "maxconn", it means that traffic regulation is involved a lot, meaning that either the server's maxconn value is too low, or that there aren't enough servers to process the load with an optimal response time. When only one of the server's "srv_conn" is high, it usually means that this server has some trouble causing the connections to take longer to be processed than on other servers.