
|
View Full Version : load balance/high availability hosting solution need for september
josemv 08-20-2004, 06:00 AM Hi,
need some host that can provide a high availability hosting solution, its an small site, less than 1GB, php-mysql based but could serve around 15M pages in one week, availability must be 100%.
Do you know some company that can offer this kind of services?
Regards,
Jose
petermp 08-20-2004, 09:20 AM Check the SM solution:
http://www.servermatrix.com/balancing.html
tehtech 08-20-2004, 09:52 AM Must be 100% ? You need to look at Rackspace or such like service. It's going to cost you some $$ though to get real 100% guarantees with real 100% uptime.
What's your budget?
atchoooo 08-20-2004, 10:36 AM Use HostQuote we will answer with a Quote and you will also see what other providers can offer : http://www.webhostingtalk.com/request.php
There are different possibilities, you can have your own little linux load balancers, 2 or more web servers, mysql database server with database mirror, etc. content on a high-availability data server, etc. We offer some good low cost high availability solutions.
Regards,
josemv 08-23-2004, 03:09 AM Hi,
petermp
I had already hosted a server in theplanet datacenter, with other company, and availability its far away from 100%.
tehtech
I thought on it, and is not a money problem, its 1-2 months only hosting and availability its a must. But don't think RackSpace are real experts in this area.
There is nobody that have bigger servers distributed in different datacenters to offer a shared hosting in this way? Only need 1 Gb space, probably less than 500Kb and probably we should expect peaks of 20000 pages per minute. We are working now in some way to reduce the load, letting proxies and external cache systems cache most of the content.
Regards,
Jose
Coolraul 08-23-2004, 03:19 AM Hmm you are looking at mysql with active data or is mysql just feeding it with canned data and can be combined later.
I am asking this to see if you could just simply go with someone with multiple locations or multiple people.
You have to know the application I guess. Does it have any state information that must be persistent? For instance if its a cms and then then download something, then no biggie run it on multiple servers and dns round robin.
If it must know state or is actively updating information in mysql then you have to mirror/cluster the database and do the same for the frontend.
I think you should checkout servermatrix / the planet as I can't imagine their regular services are managed the same as the high availability ones.
Either way, really its not hard to do, you just need to be able to pay the $$.
Haddy 08-23-2004, 03:25 AM Originally posted by josemv
Hi,
petermp
I had already hosted a server in theplanet datacenter, with other company, and availability its far away from 100%.
tehtech
I thought on it, and is not a money problem, its 1-2 months only hosting and availability its a must. But don't think RackSpace are real experts in this area.
There is nobody that have bigger servers distributed in different datacenters to offer a shared hosting in this way? Only need 1 Gb space, probably less than 500Kb and probably we should expect peaks of 20000 pages per minute. We are working now in some way to reduce the load, letting proxies and external cache systems cache most of the content.
Regards,
Jose Have you actually contact Rackspace? Im sure they can hammer out a solution for you if you ask....Especially with money not being a problem...
freeflight2 08-23-2004, 12:34 PM just get web-mysqld clusters (e.g. 1 server=web, 1server=mysql) in several datacenter and connect all mysqls via a replicating setup.
Then load balance with rr/dynamic-dns.
If a server/cluster/datacenter/network goes down your users will automatically hit an other datacenter... that's how google/yahoo do it.
This will not even be expensive: e.g. 3 datacenter with 2 servers each = 3x2x$150 = $900/mo (very rough estimate)
Joshua 08-23-2004, 12:37 PM Contact the guys at Zubrcom.com - I'm sure they can put together a plan that fits what you need.
Steven 08-23-2004, 04:43 PM Contact rusko im sure he can put something together.
TheVoice 08-23-2004, 06:56 PM 20,000 page views per minute is not much at all. You probably need 3 to 4 load balanced P4s and maybe a database server depending on how your site is configured.
rusko 08-23-2004, 07:53 PM Originally posted by coolraul
Either way, really its not hard to do, you just need to be able to pay the $$.
really? do tell, as the rest of the engineering world is apparently missing something.
given:
php/mysql application
1:10 ratio of reads/writes
required:
coherency with 0 timebound (consistency) required
no single point of failure
solution:
you tell me. if the answer is correct *and* practical (implementing xa compliance into mysql is *npt* considered practical for this purpose), you are hired.
NB: if read/write ratios are higher and the coherency timebound is more relaxed, it becomes possible, but by no measure "easy".
easy doesn't cost money, hard does.
paul
rusko 08-23-2004, 08:00 PM Originally posted by freeflight2
just get web-mysqld clusters (e.g. 1 server=web, 1server=mysql) in several datacenter and connect all mysqls via a replicating setup.
Then load balance with rr/dynamic-dns.
you can't run an active/active cluster with mysql replication.
mysql replication is not fault tolerant and doesn't handle partitioning over wan gracefully.
dynamic dns is something else.
vanilla round robin does not know anything about availability of nodes and can not be used for for failover.
If a server/cluster/datacenter/network goes down your users will automatically hit an other datacenter...
the only thing that will happen if you set it up like that is you being shown the door by the client.
that's how google/yahoo do it.
wrong on so many levels.. in short, no, both google and yahoo have competent engineers working for them.
This will not even be expensive: e.g. 3 datacenter with 2 servers each = 3x2x$150 = $900/mo (very rough estimate)
you forgot about paying for an engineer that can put up something that actually works ;]
paul
aleck 08-23-2004, 08:19 PM i'd suggest using a memory rich dedicated mysql server with scsi drive for the db and a few boxes with fast cpu's as php-frontends (take a look on dual opterons - maybe some of them will be powerful enough to do all phping alone).
2 cents
p.s. rusko is right. don't forget about the costs to build something that actually works
I think the cost may be especially high for a provider that does their own engineering since you will not be using their services for an extended period of time.
Essentially, you will have to pay full price for an engineer and the equipment.
rusko 08-24-2004, 04:31 AM Originally posted by cord
I think the cost may be especially high for a provider that does their own engineering since you will not be using their services for an extended period of time.
Essentially, you will have to pay full price for an engineer and the equipment.
regardless of who does the engineering, it needs to be done and someone's got to pay or it. usually, this would be the client. some providers won't touch your application if you only need it for two months unless you pay a premium for that.
paul
freeflight2 08-24-2004, 10:48 AM rusko: what I described works great here for 80+ page views/sec => 250,000 page views+/ hour.
Realistically what happens if you have
DNS = (
ip1,
ip2,
ip3,
ip4 )
and one of the ips goes down a modern broswer such as ie/firefox (99%) just takes an other ip, it also appears as if these broswers automatically keep using the 'fastest' ips so rr-dns works much better than its' reputation suggests.
In addition it's easy to have your monitor software automatically delete the ip(s) being down (-> dynamic dns update in bind)
replication mysql over several datacenters: also did that - if all update/deletes/inserts go to one dedicated master mysqld (on which the other slaves have to agree on / monitor and 'vote' on if master fails) there will be no trouble (at least I never had some after a couple B updates ;)
freeflight2 08-24-2004, 10:54 AM 20,000 page views per minute is not much at all. You probably need 3 to 4 load balanced P4s
well it'll be about .75B page views/mo, not sure if I would label that as "not much at all" - if it's static content I agree. for highly dynamic content it'll be more like 30 - 60 p4s and a bunch of 4GB mysql-xeons especially if he gets many writes.
The Broadband Man 08-24-2004, 11:02 AM what kind of site is this ? and how do you get .75gb hits with up being 2 months..?
Is this a torrent site?
aleck 08-24-2004, 11:43 AM i have around 8000 mysql queries per minute on a P4 with 1 gig of RAM. the box is loaded with php code as well - it's not a dedicated database server. the load is 0.3-0.4.
freeflight2 08-24-2004, 01:02 PM aleck: nice... I assume your mysqld caches everything directly in RAM
rusko 08-24-2004, 01:37 PM Originally posted by freeflight2
rusko:
and one of the ips goes down a modern broswer such as ie/firefox (99%) just takes an other ip
browsers have nothing to do with resolution, the system resolver libraries do. clue strike 1.
, it also appears as if these broswers automatically keep using the 'fastest' ips
say what now? *how* do they know what the fastest ips are, then? selection when multiple records are returned is well defined in the rfc. clue strike 2.
replication mysql over several datacenters: also did that - if all update/deletes/inserts go to one dedicated master mysqld (on which the other slaves have to agree on / monitor and 'vote' on if master fails) there will be no trouble
and how do you direct all writes to one mysqld and distribute reads, then? rewrite the user's application? not practical.
replication does not deliver consistency, only coherency with a timebound > 0, so there is *always* a race with the replication that makes it possible to have update anomalies. clue strike 3.
paul
aleck 08-24-2004, 04:00 PM Originally posted by freeflight2
aleck: nice... I assume your mysqld caches everything directly in RAM
yep, the buffer is 384M. cache read hit ratio is 99.95% and 75% of write requests are followed with a write operation.
the box has dual drives -- apache logs and mysql databases are on different drives. the bottleneck is clearly the write speed of the drive. with a scsi I could easily double the load before the CPU will be a new bottleneck.
rusko 08-24-2004, 04:37 PM Originally posted by aleck
yep, the buffer is 384M. cache read hit ratio is 99.95% and 75% of write requests are followed with a write operation.
the box has dual drives -- apache logs and mysql databases are on different drives. the bottleneck is clearly the write speed of the drive. with a scsi I could easily double the load before the CPU will be a new bottleneck.
... or you could use a raid controller with a big (perferably battery-backed, but not so important for mysql with no transactions) cache =]
paul
aleck 08-24-2004, 06:57 PM Originally posted by rusko
... or you could use a raid controller with a big (perferably battery-backed, but not so important for mysql with no transactions) cache =]
paul
yep, hardware write-back cache can do miracles.
freeflight2 08-24-2004, 07:54 PM rusko: the system libs/dlls still deliver n ips back to IE/firefox and then the browser tries to contact the given url in a more or less intelligent way thru multiple ips if neccessary... you can see very nicely on the mrtgs that the 'other' server(s) take over 90-95% of the traffic if one server breaks... even if you keep the 'dead' ip alive.
replication: yes, you have to rewrite the interface to the db: select from (any) slave / update,delete,insert always go to the master and replicate from there to the slaves... if you need unique IDs always select from the master or insert with auto_increment on the master.
skins 08-24-2004, 08:21 PM josemv, send an email to info@activedomain.nl, they have experience with such massive things.
Just let them know Glenn from Skins send you and you will be ok ;)
datums 08-24-2004, 11:49 PM Guess I will jump in
rusko: the system libs/dlls still deliver n ips back to IE/firefox and then the browser tries to contact the given url in a more or less intelligent way thru multiple ips if neccessary... you can see very nicely on the mrtgs that the 'other' server(s) take over 90-95% of the traffic if one server breaks... even if you keep the 'dead' ip alive.
This is not the way round-robin works.
Recent DNS server implementations provide a "round-robin" feature which causes the host's IP addresses to be returned in a different order each time the address is looked up. Network clients are starting to appear which, when they encounter a
host with multiple addresses, use heuristics to determine the address to contact - e.g. picking the one which has the shortest round-trip- time. Thus, if a server is mirrored (replicated) at a number of locations, it may be desirable to list the IP addresses of the mirror servers as A records of the primary server. This is only likely to be appropriate if the mirror servers are exact copies of the original server.
Have you thought about http dieing on one of the servers, then what? DNS will still return the address as valid.
Round Robin works great for mail.
If you are thinking about clustering applications you have to think of hardware loadbalancers ($$$$)
freeflight2 08-25-2004, 01:05 AM datums: I can only share here what I observed: example: photos.domain.com points to IN A ip1 and IN A ip2 - both ips making 8mbits/sec. If I reboot e.g. server1 (ip1) ip2 immediately gets about 15mbits/sec - once ip1 gets online again both ips settle at 8mbit again within a couple minutes.
The end user hitting a 'dead ip' experiences that it takes longer (a couple seconds) to load an item, but it loads after a while.
I think what happens is that if IE can not reach an ip it simple tries the next ip in the dns result for a particular domain.
|