Jak odhadujete potřebné hw zdroje pro webový server? rubrika: Administrace: Hardware

7 Michal Kleiner
položil/-a 25.2.2014

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

odkaz Vyřešeno
Anonym
odpověděl/-a 26.2.2014

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.

Komentáře

  • simara.esports : Takový pěkný postup, a pak "No a pak si spojíte naměřená data, vynásobíte 2". Kazdopadne + :-) 26.2.2014
  • Anonym : Co je na x2 špatně? Mám předpoklad, že bude běžný provoz bude 30 konurenčích uživatelů, z měření zjistím, že při 30 uživatelích mám spotřebu paměti aplikace 1GB, 60 otevřených DB spojení a spotřebuji 90 procesů Apache a procesory jedou na 60%, tak koupím server s pamětí pro OS a další věci + 2GB pro aplikaci, DB nastavím tak, že bude počítat se 120 spojeními, a Apache se 180 spojeními, a přihodím procesor/jádra/frekvenci(tady je to pro mě trošku magie a obracím se na člověka co rozumí HW). Mám tak jistou záruku, že ustojím nárusty uživatelů od začátku. Nelze koupit HW bez počátečních rezerv ... Co když bude aplikace úspěšná a lidi tam začnou chodit ve velkém? To chcete mít po měsíci odstávku kvůli výměně HW? Ale zase nemá cenu kupovat server s 64GB RAM když z měření vím, že bude stačit pro OS 2GB, pro DB 500MB a Web 500MB. Koupím mašinu 8GB RAM a mám pro začátek vystaráno. Ony serverové paměti jsou cenově něco jiného než paměti do PC. Teda pokud nekupujete noname/lowend server/komponenty. A to se týká všech komponent. Disky kupujete podle rovnice - (OS Disk + Aplikační Disk + DB Disk) * 2 nebo 3 podle zapojení RAIDu/Mirroru ... Podle mě stačí na nekritické aplikace mirror. OS Disk je většinou větší, ale nemusí být super rychlý. Aplikační a DB musí být rychlé. DB disk je hodně závislý na velikosti dat, ale obecně bývá větší než aplikační. Aplikační disk stačí do 128GB. Pokud mám ale aplikaci, která slouží pro čtení/ukládání většího množství souborů, tak pro ty soubory pořídím vlastní disk, ať mě čtení/ukládání dokumentů. A rázem je tu až 8 disků, které musím koupit. A to už si vážně rozmyslím, zda koupím 8 * 1TB disk nebo 4x128GB,2x256GB a 2x1TB disk. To jsme zvědav, jak bude můj komentář hezky naformátovaný ... Určitě do těch odstavců co jsem nadělal ... 27.2.2014

Pro zobrazení všech 8 odpovědí se prosím přihlaste:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.