Wouldn't more servers become increasingly (seen from the application) slower as you force your clients to connect to more servers?

Assuming all machines have enough processing power and network bandwidth, I'd expect performance of the last of these variants to be best:
16x  1GB machines
 8x  2GB machines
 4x  4GB machines
 2x  8GB machines
 1x 16GB machines

In the first one you may end up with 16 different tcp/ip-connections per client. Obviously, connection pooling and proxies can alleviate some of that overhead. Still, a multi-get might actually hit all 16 servers.

Obviously, the last variant offers much lower availability.

Best regards,

Arjen

On 26-11-2011 12:47 Henrik Schröder wrote:
The only limits are when you've saturated your internal network or hit
the max number of TCP connections that your underlying OS can handle.
The amount of nodes make absolutely no difference.

Yes, part of the server selection algorithm gets slower the more nodes
you have, but that part is insignificant compared to the part where you
actually compute the hash for each key, and that in turn is
insignificant compared to the time it takes to talk to a server over the
network, so in effect there is no maximum amount of nodes.

The memcached server itself consumes very little CPU, don't worry about
that. In the typical case you don't build a separate cluster for that,
you just use whatever servers you already have that have some spare RAM.


/Henrik

On Sat, Nov 26, 2011 at 06:05, moses wejuli <[email protected]
<mailto:[email protected]>> wrote:

    hi guys,

    not sure if this has been asked (and answered) before, but thought i
    might ask away anyway...

    what would be the recommended maximum number of nodes in a memcached
    server pool (cluster) ...? am thinking u cannot go on indefinitely
    adding nodes without some sort of performance penalty  -- a 100-node
    homogeneous cluster will probably hash faster than a 2000-node
    homogeneous cluster??! with additional network issues for good
    measure??

    any pointers would be very helpful!!

    oh, and what wud be the optimal node specs in such a case
    (particularly CPU cores)?

    thanks,

    -m.



Reply via email to