Status: New
Owner: ----
Labels: Type-Defect Priority-Medium

New issue 157 by neil.mckee.ca: Instrumenting memcached with sFlow
http://code.google.com/p/memcached/issues/detail?id=157

This patch is a proposed enhancement against the central repo that adds sFlow monitoring.

This approach addresses the same problem-space as ticket 109:
http://code.google.com/p/memcached/issues/detail?id=109
However with sFlow all the analysis is moved off the server, leaving only the essential minimum. Alternative approaches such as tcpdump, systemtap and dtrace do not scale well in a production environment.

For background on this, see:
http://blog.sflow.com/2010/09/memcached.html

If you compile with this patch,  then you can run with "memcached -u
nobody -o sflow=on",  and it will pick up configuration from /etc/
hsflowd.auto, such as:

sampling=400
polling=20
agentIP=10.0.0.112
collector=10.0.0.111 6343

"agentIP" should be the IP of the server,  and "collector" should be
the IP of an sflow collector such as "sflowtool":
http://www.inmon.com/bin/sflowtool-3.17.tar.gz

(This config file is generated automatically if you install hsflowd. hsflowd is the host sFlow daemon from host-sflow.sourceforge.net which
contributes an sFlow feed of server performance stats.)

Neil

NOTES:

(1).  Provided the sampling-rate is set appropriately, the overhead
should be roughly equivalent to adding one extra stats counter.  The
critical path is just a decrement-and-test on a per-thread counter (no
locking).

(2).  The changes are all within "#ifdef SFLOW" except for (3) below.

(3).  I changed memcached.h:struct conn->request_addr to be of type
struct sockaddr_storage so it would work for IPv6 too.
What version of the product are you using? On what operating system?



Attachments:
        sfmc_20100923.zip  24.8 KB

Reply via email to