Škálování výkonu serveru
Včera jsem už byl jen malinký krok od toho, abych pořídil čtvrtý server. Nakonec jsem to neudělal. A až to budu muset udělat budu slavit, hodně! Proč? Protože to bude znamenat tak vysokou návštěvnost, že už budu muset. Z pohledu opravdu velkých serverů typu Seznam, Idnes apd jsem čučkař. A věřím, že současný server by ustál i 3-5x více návštěv a nákup dalšího serveru by absolutně nebyl nezbytný.
Ale já si prostě rád držím laťku vysoko, co do rychlosti webu. Nechci mít ten web, kde se klikne a čeká vteřinu co se stane. Za vteřinu už tam má být prokliknutý obsah v celé parádě a ne točící se kolečko.
Poslední dobou mě trápila odezva serveru. Udělal jsem si na druhém serveru skript, který mi tento server testuje každých 10 vteřin. Pokud se dostane mimo nastavené hranice pošle mi mail s aktuální situací. Asi po týdnu jsem už měl tolik mailů s horší dostupností (ne vše bylo přes den, podstatná část byla v nočních hodinách), že byl čas to řešit. Do tohoto okamžiku jsem neměl ponětí, že jde o problém. Jsem na webu bezmála celý den a ničeho jsem si nevšiml. Zádrhely jsou totiž vteřinové. Třeba dvě vteřiny ano a několik minut vše ok. Toho se obtížně všímá. Skript to testuje každých 10 vteřin a hodně jich vychytá.
Vpravo je ukázka, co skript dělá a co mi posílá, pokud jsou časy vysoké. Toto jsou správné časy, tj v setinách vteřin. Do desetin a do celých čísel by se to vůbec nemělo dostat. Ale dostalo...
Začal jsem analyzovat, kde je problém. Návštěvnost je vyšší, ale ne dramaticky vyšší, aby to měl být problém. Navíc server používá CDN (jiný server, který předá obsah místo mého serveru, takže mu odlehčí), který obstará cca 1/3 provozu. A to je dost velká úleva.
Dalším levelem současného serveru je buď navýšit paměť, aby se více obsahu vešlo do cache (tomu příliš nevěřím, celý obsah se tam nikdy prostě nevejde, už teď je paměť slušně velká) nebo začít škálovat výkon. YES! Na to jsem se těšil už x let. Servery nejsou natolik drahé, aby mě to zruinovalo a bylo by o jednu "hračku" víc!
Navíc první krok je jednoduchý. Stačí pořídit druhý server a přemístit na něj jen databázi. První server bude mít soubory a druhý databázi. Krásně si vzájemně pomohou. Nemusí se dělat žádná replikace dat apd. To už by byl jen bonbonek, že by se vzájemně duplikovaly a vytvářely zálohu nepřetržitě.
první krok škálování výkonu serveru
další krok, který mě nikdy nepotká...
Už jsem se díval, jakou konfiguraci pro databázový server zvolím a co mě to bude stát. Těšil jsem se na porovnání rychlosti načítání a měl trochu obavy, aby toto propojení mezi servery bylo opravu rychlé. To se prostě musí otestovat... a pak mě napadlo...
Jo, to co vždycky, ROBOTI. Sice už je krásně filtruju, ale vždycky když přijde robot kouknu se do databáze jestli je to hodný nebo zlý robot a buď ho vykopnu nebo pustím. Jenže už toto jedno nakouknutí do databáze je min 1 SQL dotaz resp 2 dotazy, abych si poznačil, že jsem ho vykopnul. Bavíme se o tisích dotazů za několik málo minut jen abych zjistil, že ho můžu vykopnout. Jasně, tady je slabina.
Takže jsem udělal ruční filtr na chronicky známé roboty a už je vykopávám ihned, bez dotazu do databáze. Už je to 24 hodin a nepřišel mi ani jeden mail, že by byla horší dostupnost.
Takže druhý server je v nedohlednu. Trošku jsem nerad, trošku jsem rád.
Tuto úpravu jsem udělal na všech 3 serverech, takže všem by se mělo odlehčit. I blogy půjdou o kousíček rychleji.
Související články
- žádné články nebyly nenalezeny
Komentáře k článku: Škálování výkonu serveru

Třeba na ten nový server také dojde. ^^