Franta – Občasník malého ajťáka

Domény, Hosting, Cestování

Moje laborator :)

Dneska jsem si jen tak ze zvedavosti vyjel, na cem ze vlastne provozuju parking a analytiku dat.

Parking

Parking domen – to je to, kam smeruju veskery svuj traffic, pak vyhodnocuju konfiguraci pro jednotlive domeny, vyhodnocuju pozadavek ktery prisel a bud traffic prodam na Zeropark nebo presmeruju na nejakou parkovaci spolecnost.

Bohuzel u parkovanych domen je obrovsky mnozstvi robotickeho trafficu, a ten je potreba i tak zpracovat.

Aktualne na parkingu mam kolem 170.000.000 webserverovych pristupu denne. Jeste par mesicu zpatky jsem mel nejaky shit domeny ktere dokazali vygenerovat 300 – 500 milionu hitu denne. Co v praxi znamenaji takova cisla ? Ze webserver musi byt schopny obhospodarit na 2 tisice pozadavku za vterinu (nyni) a az dokonce 6 tisic pozadavku za vterinu pred par mesici. A to se bavime pouze o prumeru, behem dne jsou samozrejme klidne chvilky a jindy zas obrovske peaky.

Pro Parking mam nakonec vytvorenou vlastni malou Anycast sit, protoze potrebuju i rozumne rozkladat traffic. Aktualne tedy parking provozuju na:

EU-AMS: 32G RAM,   4 jader / 8 vlaken
EU-LON: 128G RAM, 8 jader / 16 vlaken
US-LAX: 32G RAM,  4 jader / 8 vlaken
US-NYC: 64G RAM,  4 jader / 8 vlaken
AS-SIN: 128G RAM, 8 jader / 16 vlaken
AF-JOH: 8G RAM, 4 vCPU

Tim, ze jsou v anycastovem zapojeni je pro me naprosto jednoduche kdykoliv pridat dalsi server. Zaroven, pokud je odstavka u poskytovatele, nebo je treba nejaky update systemu, ci neco selze, stroj se ze site odpoji a navstevnici nezaznamenaji zadny vypadek, nebot je provoz obratem presmerovan na jiny nejblizsi server.

Pro DNS parkingu je potreba vyuzit Vanity DNS, tj DNS ktery odpovida na jakykoliv dotaz jasne definovanou template. Neresi tedy jestli domena je v DNS vedena ci ne, proste odpovi na vsechno – presne takto to maji resene i parkovaci spolecnosti jako je Bodis, nebo Parkingcrew. Tento DNS server mam vlastni napsany v jazyce Go, nebot se nezabyva nicim jinym nez jen stupidne odpovidat na dotazy, ktere si muzu jasne definovat. Snizil jsem tak maximalne rezii proti bezne dostupnym DNS SW.

Pro Webserver parkingu jsem nebyl schopny vyuzit Nginx/Apache ani jiny vhodny webserverovy nastroj, protoze rezie toho provozu (a nasledneho zpracovani v PHP) byla tak obrovska, ze servery nestihali. Z tohoto duvodu mam opet vytvoreny jednoucelovy jednoduchy webserver v GO jazyce, ktery excelentne s minimalnimi naroky obhospodarovava cely provoz.

NXD

Mam dve domeny ktere jsou nositelky velmi cenneho NXD trafficu a ten je extremne velky:

Z obrazku statistiky jedne z nich je videt ze je na domenu vedeno pres 2 miliardy DNS requestu denne a na webserver kolem ctvrt miliardy pristupu.

DNS:

DNS -> 2x server (256GB RAM, 6 jader / 12 vlaken CPU) – Intel

Webserver:

32 GB RAM, 4 jadra (8 vlaken) – Intel
128 GB RAM, 6 jader (12 vlaken) – Intel
128 GB RAM, 6 jader (12 vlaken) – Intel
64 GB RAM, 24 jader (48 vlaken) – AMD

Prumerny load DNS serveru: 4 a prumerny load Webserveru: 20 😀

Na serverech se muselo upravit spousta parametru pro jadro s ohledem site, nebot jsem narazel i na takovy limity jako jsou vycerpane TCP/IP porty, a tak.

V obou pripadech jde opet o vlastni software, zde zjednodusena verze kterou pouzivam u parkingu.

Ta druha domena ma zhruba 2/3 provoz na DNS, ale skoro podobny provoz na webserveru, takze vyzaduje svoje samostatne zelezo a tim je:

DNS:

DNS -> 1x 256GB RAM, 6-core Intel (12 vlaken)

Webserver:

256 GB RAM, 6-core Intel (12 vlaken)
256 GB RAM, 6-core Intel (12 vlaken)
128 GB RAM, 6-core Intel (12 vlaken)

Prumerny load DNS serveru je: 3.5 a prumerny load Webserveru: 12 🙂

Elastic Search Cluster

Cely provoz pak loguji do Elasticu, coz je nejvetsi vec kterou jsem kdy provozoval.

Servery:

ES1: 256 GB RAM, 8 jader / 16 vlaken Intel Xeon, 4x 2TB NVMe
ES2: 256 GB RAM, 8 jader / 16 vlaken Intel Xeon, 4x 2TB NVMe
ES3: zrusen
ES4: 512 GB RAM, 32 jader / 64 vlaken AMD EPYC, 10x 2TB NVMe
ES5: 512 GB RAM, 32 jader / 64 vlaken AMD EPYC, 10x 2TB NVMe
ES6: 256 GB RAM, 18 jader / 36 vlaken Intel Xeon, 8x 3,6TB NVMe
ES6: 256 GB RAM, 18 jader / 36 vlaken Intel Xeon, 8x 3,6TB NVMe (teprve pripraveny)

V Elastic Clusteru aktualne mam ulozeno vice nez 155 miliard dokumentu o kapacite 44 TB!

Souhrn

Celkem DNS dotazu denne: 4 miliardy (46k za vterinu)
Celkem WWW pristupu denne: 650 milionu (7,5k za vterinu)

One Comment

Napsat komentář: Lukáš Zrušit odpověď na komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..