Re: Session and Multi Server Architecture

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Stut wrote:

> Per Jessen wrote:
>> mike wrote:
>> 
>>>> Check out persistency in LVS for instance:
>>>> http://www.linuxvirtualserver.org/docs/persistence.html
>>> i know persistence handling is an option in LVS, but i haven't seen
>>> the need to use it. i use LVS right now without even bothering with
>>> any of that.
>> 
>> Because you've chosen another option - memcached presumably - which
>> is more expensive over all.  (IMHO).
> 
> Based on what? I'm currently looking at replacing a file-based cache
> with memcached and I'm interested in all justified opinions.

You might not have much use for mine then :-) 

If I compare plain session-persistency (session being a client to server
relationship, not $_SESSION) with memcacheds copying objects around
across many machines, common sense tells me that the latter will use a
lot more resources.  Both on the network and on each machine. 

With memcached, and 1000 clients for a cluster of 50 machines, each
using up 1Mb of $_SESSION space, that is 1000Mb per machine, 50Gb in
total. 

With session-persistency, you have 50 machines with 1000/50 clients
each, making 20Mb per machine.  And virtually no session-related
inter-machine network traffic.  And your machines are not busy with
keeping 980 objects needlessly up-to-date. 

Of course, processing power, network capacity and memory are all very
cheap these days, so it's easy to put on the Microsoft hat and be
wasteful.

>> On the next request, LVS will know not to try that server, and the
>> user will move to another one.  Obviously the session-context will
>> die, but is that really a big deal?  How often does one of your
>> servers die? Sure, if you've got 10,000 in a cluster, you'll have
>> fans and harddisks pop every so often, but I have my doubts about
>> memcached scaling to that level (please correct me if I'm wrong here,
>> I have _no_ experience with memcached).
> 
> Facebook. Digg. LiveJournal. That enough scalability proof for ya? If
> not there are plenty more where those came from.

It wasn't really the scalability I was interested in here, but I'd be
interested to hear some numbers if you have any.  

My point with the 10,000 machines was - with that many components, even
the 100,000 hours MTBF of a regular harddisk will mean one will break
every ten hours (statistically speaking).  Add fan- and other failures
to that, and you'll have sessions dying quite frequently. Which _could_
be a significant problem, and maybe enough to make you want to use
memcached for object replication.  (there might also be a restriction in
the number of concurrent clients handled by LVS session persistency). 

However, with a much smaller cluster, say 50 or 100 machines, hardware
failures will be a lot less frequent, and having the odd session die
once a week might not be a problem.  Which is why I think LVS session
persistency is perfectly fine. 


/Per Jessen, Zürich

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux