Jak odhadujete potřebné hw zdroje pro webový server? rubrika: Administrace: Hardware
Zdravím,
dovolil bych si lehce navázat na http://devel.cz/otazka/spravna-volba-hostingu-pro-zatizeny-eshop, kde bych podobnou odpověď očekával, ale nenalezl.
Používáte nějaké metriky nebo nástroje pro určení, jak výkonný server budete pro novou prezentaci potřebovat? Setkal jsem se s požadavky typu 3GHz Xeon CPU, 4GB RAM a 250GB disk bez ohledu na další faktory jako návštěvnost atp., což mi přišlo trochu zcestné. Jedná se o redesign webové prezentace cca středního rozsahu (katalog s desítkami produktů, novinky, homepage, obecné obsahové stránky, ne obchod).
Data, ze kterých mohu vycházet, jsou datová velikost původních stránek (typové stránky např. produkt, kategorie, homepage), velikost nových stránek pro stejné typy, data o návštěvnosti z Google Analytics. Na starém serveru a) není možné provést nějaké přesnější měření zatížení, b) nově bude použita jiný skriptovací jazyk.
Snažil jsem se nalézt nějaké relevatní informace napříč internetem, ale na nic kloudného jsem nenarazil. Použitý bude LAMP stack s uvažovanou možností servírovat statický obsah přes nginx i když se nebude provádět nic extra výpočetně náročného na straně CMS.
Denní návštěvnost 800-1000 UIP, první načtení stránky cca 80 requestů a velikost 2MB, druhé načtení cca 120KB. Prosím neřešme jestli jsou tato čísla velká nebo malá, jde o metodiku, jak je použít pro určení parametrů serveru, který by to měl servírovat. Nárazově to mohou být násobky v řádu jednotek, daný business nemá špičky v návštěvnosti jako třeba eshopy před Vánocemi.
Další věc je nastavení samotného sw, kolik Apache workerů, kolik přidělit paměti (PHP jako FastCGI) atp. Nechce se mi věřit, že by to všichni dělali stylem "tak to nějak spustíme a pak uvidíme".
Díky za podněty a diskusi,
Michal
Obecný návod:
Proti vývojářskému serveru si pustím Apache JMeter z několika strojů, s několika různými scénáři průchodu aplikací. Na vývojářském stroji mám spuštěno monitorování SQL spojením, využití pamětí, disků atd...
Provedu optimalizace nejprůšvihovějších částí. Spustím testy znovu. Udělám test na odhadovaný počet konkurenčních klientů. Pak udělám zátěžové testy dokud nedosáhnu hranic výkonnosti serveru/aplikace. Např. vygenerování stránky s katalogem produktů nesmí trvat déle než 1s. Kompletní stažení zdrojů do 3s. A tak dále pro další klíčové stránky. Tím si zjistím spotřebu paměti, disků, počty spojení na DB atd. na nějakou zátěž.
Dobré je si udělat testy např. s 10, 20, 40, 80 konkurenčními klienty (granularita je na Vás). Každý test spustit nejméně 2x. Získáte trend spotřeby zdrojů při vzrůstající zátěži. Může to odhalit nějaké chyby v aplikaci/nastavení serveru.
No a pak si spojíte naměřená data, vynásobíte 2(rezerva na špičky, jako vánoce apod.) a máte základní HW prostředky. HW kupovat tak, aby zbyly na matru sloty pro procáky a paměti, tj. nekoupím základní desku s 2 paticema, ale se 4. Neobsadím všechny (např.4) pamětové banky 4GB moduly, ale dám tam 16GB modul a nechám si otevřená vrátka na další rozšiřování a nebudu v budoucnu brečet nad vyhozenými paměťmi/penězi. Disky minimálně 10K otáček, ale radši 12500 nebo 15K. Nebo zkusit to SSD řešení od Intelu, ale ty SSD disky jsou fakt drahé. DB na vlastních discích.
Pro zobrazení všech 8 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře