PDA

Bekijk Volledige Versie : Graag advies



New
19/02/10, 01:18
1 website, 80 Tb opslag, geen adult/streaming, 1 miljoen bezoekers per dag, 1 Mb per bezoek (waarvan 100Kb iig uncached), 1 database met 1 query per bezoeker (12 bytes textual)

Hoe zouden jullie dat opzetten, vnl. voor wat betreft loadbalancing en opslag??

Peter

Lite-On
19/02/10, 11:04
Het is wat lastig in te schatten, aangezien niet bekend is hoeveel load het script genereert met dit groot aantal bezoekers.
Draait de website nu ergens anders? Zo ja, is er wat bekend over de huidige opstelling?

Ik zou snel gaan denken aan een load balanced cluster opstelling, met minimaal 4 webservers en 2? database servers.
Indien de load groeit, hoeft het niet veel werk te zijn om wat extra server capaciteit toe te voegen ;-)

Kwa filestorage zul je snel uitkomen bij een storage oplossing (SAN/DAS) van bijvoorbeeld Supermicro/Dell, waar een flink prijskaartje aan hangt.
80TB storage in RAID is namelijk niet niks. Wens je de storage ook compleet redundant uit te voeren?

Yourwebhoster
19/02/10, 11:19
80 TB zou ik sowieso over meerdere servers verdelen, maar goed dan heb ik het over de opslag. Waar bestaat die 80TB uit? Daarnaast; we kunnen hier alleen maar gissen. Wil je een echt advies, ga dan naar een ICT consultant, daarmee kan je het eea aan info uitwisselen en dan kan je een echt advies krijgen.

gjtje
19/02/10, 11:59
Als je 80TB continue snel wilt kunnen benaderen heb je nog al een bakbeest van een SAN oplossing nodig. Veel storage is geen probleem, veel storage die ook nog snel is wel. Je moet dus een profiel van je data hebben zodat je weet wat wanneer, hoe snel, hoe vaak nodig is. Ook zal je dit moeten back-uppen en dan heb je die informatie ook nodig.

Hoeveel bezoekers per dag is niet zo interessant, hoeveel concurrente bezoekers op bepaalde tijdstippen wel, daar moet je omgeving op zijn ingericht.

New
19/02/10, 14:29
(.) hoeveel load het script genereert met dit groot aantal bezoekers (.) load balanced cluster opstelling, met minimaal 4 webservers en 2? database servers. (.) storage oplossing (SAN/DAS) van bijvoorbeeld Supermicro/Dell (.) flink prijskaartje (.) storage ook compleet redundant?

-- Script doet zoals gezegd weinig: 1 query per bezoek tegen een MySQL database met 1 mio records, en returned verder initiele HTML.

-- 4 webservers lijkt me wat weinig: op piekuren 's morgens en 's avonds komen er 650.000 bezoekers langs, dan moeten er wel HEEL bijzondere netwerkkaarten en processors in die 4 machines!

-- Geld speelt t.o.v. implementatiesnelheid en betrouwbaarheid ondergeschikte rol, had Supermicro al op m'n lijstje staan maar op 2 servers na (die wel al 5 jaar probleemloos draaien moet ik toegeven) ken ik hun producten niet zo bijster goed.

-- Opslag uiteraard EN redundant, EN geshadowed met (zoveel mogelijk) realtime copy als backup (dus liever 2x kosten dan 1x probleem)

Thx!

New
19/02/10, 14:36
80TB continue snel bakbeest van een SAN (.) Veel storage geen probleem, veel storage snel wel (.) profiel van je data (.) back-uppen (.) hoeveel concurrente bezoekers

Duidelijk:

-- Data staat in (afgerond) 800.000 directories, ca. 12.000.000 files, filenames bestaan standaard uit xxxxxxxx-yyyyyyy.zzzz

-- backup willen we het liefst realtime doen naar volledige shadow (bij wijziging file op productiesysteem ook copy naar backup)

-- Ga uit van 750.000 concurrente bezoekers op 3 tijden rond 08:00, 16:00 en 22:00. Dat betekent zoveel als: 750.000 x 1Mb per uur HTTP, aangevuld met 150.000 updates (disk-writes), elk 100Kb.

gjtje
19/02/10, 14:42
Als je dan uitgaat van 100000 bezoekers per uur kom je op +/- 30 req/s of te wel +/- 250 Mbps, niet echt iets waar 4 webservers bang van worden als het puur statisch is.

New
19/02/10, 14:56
Als je dan uitgaat van 100000 bezoekers per uur kom je op +/- 30 req/s of te wel +/- 250 Mbps, niet echt iets waar 4 webservers bang van worden als het puur statisch is.

Mijn rekenmachientje zegt (piekload 750.000/uur):

750.000 requests/hour
/3600 seconds
= 208 requests/second

niet 30...

Throughput dus (afgeronde cijfers)
200 requests/second
* (ca) 500 KBYTE download
* 8 to get to bit
+ 4% TCP/IP overhead/error correction

= 832.000 Kbit
= 812 Mbit

(en da's dan zonder overcapaciteit!)

Lijkt mij lastig met 4 servers.

Wij zetten 20 servers in, dus capaciteit is niet het probleem of de vraag: zoek meer advies in de richting van

-- load balancing blades (Cisco?)
-- hoe de databases snel te houden?
-- Hoe de opslag/backup in te richten?
-- En waar we mensen vandaan halen voor vaste dienst met heel leuk salaris:-)

Serve-xs
19/02/10, 15:06
Ik zou toch eens opzoek gaan naar een IT Consultant. Dell doet zulke dingen trouwens ook. Dan gaan ze er uiteraard wel vanuit dat je hardware bij hun koopt ;-)

Personeel kun je bijvoorbeeld hier zoeken, of eens langs gaan bij een uitzendbureau, vacatures plaatsen op de bekende websites, etc.

Lite-On
19/02/10, 15:07
Mijn rekenmachientje zegt (piekload 750.000/uur):

750.000 requests/hour
/3600 seconds
= 208 requests/second

niet 30...

Throughput dus (afgeronde cijfers)
200 requests/second
* (ca) 500 KBYTE download
* 8 to get to bit
+ 4% TCP/IP overhead/error correction

= 832.000 Kbit
= 812 Mbit

(en da's dan zonder overcapaciteit!)

Lijkt mij lastig met 4 servers.

Wij zetten 20 servers in, dus capaciteit is niet het probleem of de vraag: zoek meer advies in de richting van

-- load balancing blades (Cisco?)
-- hoe de databases snel te houden?
-- Hoe de opslag/backup in te richten?
-- En waar we mensen vandaan halen voor vaste dienst met heel leuk salaris:-)

Je hebt opzich een punt. 200 requests met 4 servers is in mijn ogen prima te doen (ik doe bijna 300 requests per sec op een Quad Core met 8GB ram), kwestie van goed optimaliseren.
Het is in dit geval de traffic welke aardig wat resources in gebruik zal nemen.

Met dit aantal files en traffic hoeveelheden zal eerder het disksystem de bottleneck vormen. Zoals gjtje al schreef zul je een bakbeest als SAN moeten hebben, en zelfs dan zal het nog aardig karwei worden om de speed hoog te houden bij veel random read/write acties.

Voor de database zou ik zorgen dat het geheel continu synchroon blijft dmv mirroring.

jinxedworld
19/02/10, 15:08
Precies mijn idee, zoek een goede consultant, niet de eerste de beste. Dell is bijvoorbeeld een goed begin. Hier zitten ook genoeg mensen die na een praatje op locatie met jou je een idee kunnen geven wat er allemaal nodig is.

New
19/02/10, 15:22
Je hebt opzich een punt. 200 requests met 4 servers is in mijn ogen prima te doen (ik doe bijna 300 requests per sec op een Quad Core met 8GB ram), kwestie van goed optimaliseren.
Het is in dit geval de traffic welke aardig wat resources in gebruik zal nemen.

Met dit aantal files en traffic hoeveelheden zal eerder het disksystem de bottleneck vormen. Zoals gjtje al schreef zul je een bakbeest als SAN moeten hebben, en zelfs dan zal het nog aardig karwei worden om de speed hoog te houden bij veel random read/write acties.

Voor de database zou ik zorgen dat het geheel continu synchroon blijft dmv mirroring.

Eerst even verschilletje wegpoetsen: professional habbit van mijn kant: als IK server zeg, bedoel ik 1 processor, dus toen JIJ 4 servers zei, dacht ik in processoren... Uitgaande van Quads is het aantal requests wel af te handelen met 12 procs, MAAR daar komt bij:

-- Script-waiting during database-query AND file-retrieval (uitgaande dat files in SAN nauwelijks gecached gaan worden)

Waar ik nou precies bang voor ben zijn de disk access times: er zijn 0 tests beschikbaar met 200 reads/second in 12 mio files (althans, MOI heeft ze niet gevonden)

New
19/02/10, 15:24
Ik zou toch eens opzoek gaan naar een IT Consultant.

Even voor de zekerheid: bedoel je een onafhankelijke consultant van een ICT detacheerder?

Stina
19/02/10, 15:25
Wij zetten 20 servers in, dus capaciteit is niet het probleem of de vraag: zoek meer advies in de richting van

-- load balancing blades (Cisco?)
-- hoe de databases snel te houden?
-- Hoe de opslag/backup in te richten?
-- En waar we mensen vandaan halen voor vaste dienst met heel leuk salaris:-)

Zonder rekening te houden met budget;

- Loadbalancers zal ik kijken naar de Citrix NetScalers of de F5 BigIP's (of zelfs LVS)
- voor firewalls kijk bijvoorbeeld naar de Juniper ISG1000's
- voor routers kijk naar de Cisco ASR1004
- switching naar de Juniper EX4200 serie's
- uitgaande van Oracle of MSSQL; naast je app goed te schrijven query-wise gewoon blijven schalen. Bij MySQL / PostgreSQL zorgen dat je app onderscheidt maakt tussen read/write en een flinke caching laag er tussen bouwen (bijv. memcached). Zorg voor snelle storage met een flink sloot geheugen in de database servers
- opslag kijken naar de Equallogic PS6500E's met 48TB zet die twee in een storage pool en laat ze repliceren naar een tweede identieke pool.
- zet waar mogelijk varnish in als reverse proxy
- zorg voor een gedeeltelijk gevirtualiseerde omgeving (bijv. al je appservers / cachers)
- uitbesteden, dergelijke omgevingen hebben dusdanig veel expertise en tijd nodig dat je een team nodig hebt om iets van garanties te geven op de beschikbaarheid

Moet het verder crossdatacenter zijn (als in; kunnen failoveren na een twee locatie in enkele momenten)? Zijn het veel internationale gebruikers?

Anyway heb verschillende van dergelijke omgevingen opgezet maar er op deze manier is er niet bijzonder veel zinnigs over te zeggen. Dit is dus ook maar natte vinger werk, gewoon leuk om over na te denken!

New
19/02/10, 16:20
Zonder rekening te houden met budget;

(.) uiterst zinnig antwoord (.)


Stina, again: zinnig antwoord. Stuur je even PM voor verder overleg.

frankske
19/02/10, 17:12
2x Haproxy als LB (satureert tegenwoordig 10GE), nginx als static server, paar applicatie servers (al denk ik niet dat je er 20 nodig hebt), en dubbele storage. Probeer je storage weg te halen van een "klassiek" POSIX compliant fs. Als je de posix eis kan laten vallen, heb je plots pak meer mogelijkheden, vooral als binnen 12 maand aan 250TB zou zitten, en binnen 36 maand richting PB gaat.

cfmweb
19/02/10, 21:49
Het zal wel vloeken in de kerk zijn...
Maar onder het motto "beter goed gejat dan slecht bedacht" kun je misschien even "social engineeren" met de concurrent en vragen hoe zij het hebben gedaan ;)

New
19/02/10, 22:21
Het zal wel vloeken in de kerk zijn...
Maar onder het motto "beter goed gejat dan slecht bedacht" kun je misschien even "social engineeren" met de concurrent en vragen hoe zij het hebben gedaan ;)

Haha, dat hebben we uiteraard al bekeken, diep zelfs, en mede gelet op de problematiek die de grootste partij kent heeft moi in al mijn wijsheid besloten dat we het anders gaan doen (maar die beslissing was technisch feitelijk daarvoor al genomen).

Concurrenten -vragen- is overigens niet echt de meest zinvolle weg, dan blijken ze opeens heel zwijgzaam. Raar, eigenlijk;)

cfmweb
19/02/10, 22:24
In dat geval is leren van een ander zijn fouten altijd nog leuker dan leren van je eigen fouten :) (ik schud ze zo uit mijn mouw)