Critical Mass utómatek.

Miközben ezt írom, egyszerre editálok fényképeket, beszélem meg a hétvégi bérelt vonali átállásunkat, olvasok emailt, és greppelem a lighty logokat, hogy tudjak statisztikákkal szolgálni.

A legszembetűnőbb az, hogy iszonyatosan sok találatunk volt. Már legalább vagy egy órája csak a grep megy. (A szokásos terhelés mellett, persze.)

Nézzük először a kívülről is látható dolgokat.

Először is tisztán látszik, hogy a CM site az utóbbi héten (és főleg a második felében) nagyon kemény forgalomnövekedést vállalt, jelent pillanatban a Statgép szerint a leglátogatottabb site:

A részletes (és, hangsúlyozom, Statgépes) statisztikák szerint a leglátogatottabb nap a felvonulás napja, amikor több, mint 12 ezren látogattak hozzánk! Ha még azt is belevesszük, hogy az emberek nagy része délután 2 körül eltekert felvonulni és késő estig haza se tévedt, akkor igazán impresszív félnapot kapunk, sőt, ha azt vesszük, hogy a forgalom nagy része valószínűleg kb. reggel 8-től délután 2-ig zajlott, vagyis 6 óra alatt… Bevallom, szeretek ilyeneket számolgatni.

A Statgépnek persze most a mi szempontunkból hátrányai is vannak. (Előnye, ezt mindenki tudja, az, hogy összehasonlítást ad a többi site adataihoz képest.) Hátrány, hogy nem látjuk, hányan használnak olyan file-t a szerveren, ami nem php/html, hiszen a Statgép mérőkóddal dolgozik, nem webserver logból. Erre a célra a Webalizer szerveroldali statisztika a legjobb a kezünkben, de a grep még mindig megy, úgyhogy előbb az (egyébként sokkal unalmasabb) általános gépadatok. (A Webalizer statok miatt legalább úgyis átnézed.)

A Critical Mass site (és az Alleycat, de erről majd még később) Lighttpd alatt futott, ez tette lehetővé, hogy bírjuk ezt a terhelést. Ezúton is nagyon nagy köszönet ezért a csodálatos (és szabad!) eszközért! (Amennyire tudom, az iWiW is így oldja meg, a 16 gépes szerverpark mellett.) A két Lighty site áprilisra kapott egy külön IP-címet, hogy a default IP-n futó Apache mellett a Lighttpd is tudjon 80-as porton futni. Külön nem lőttem be a Munint a Lighty performance mérésére (nem is tudom, hogy van-e kész plugin hozzá), Apache adatokat pedig hiába is néznék, de azért van pár gépoldali adat, ami mutatja a forgalomnövekedést.

CPU kihasználtság:


Hálózati forgalom:

És load:

Ezen látszik a legjobban, hogy keddtől fogva mennyire megnőtt a forgalom. Sejtem, hogy a kis tüskék, amit látsz, azok az Index, az Origo, stb. cikkei. Amire konkrétan emlékszem, az a pénteki nap, amikor egyszerre kerültünk ki a Szánira, a Népszabira, meg az Origora (Index már korábban közölt), na az megizzasztott engem is, ninját is, de úrrá lettünk a helyzeten.

Amit akkor megtanultam, az az, hogy a több néha kevesebb, vagyis a több futó processz adott esetben kisebb terhelést eredményez. A probléma ugyanis az a preasszumpció volt, hogy 8 PHP processzel mindent ki lehet szolgálni, illetve hogy ennél több processz felesleges többletterhelést adna a gépnek. (Memóriazabálás, swapolás, stb.) A megoldás végül az lett, hogy a 2 PHP master processzt lecsökkentettem 1-re (naponta újraindul a Lighty amúgy is, tehát nem kell tartani a master processz több napnyi futás utáni váratlan kidöglésétől), viszont az 20 processzt kezelt. Az eredmény: a péntek reggeli 18 körüli load 4-re szelídült, a site pedig régi reszponzivitásának magaslatait ostromolta. (Kis háttérinfo ide: a Lighttpd tud PHP-t futtatni, de csak FastCGI-n keresztül, vagyis a Lighty a FastCGI engine-jén keresztül futtat egy PHP-CGI (master) processzt, ami viszont szálakat nyit. Egy szál egyszerre egy kérést dolgoz fel, még ha gyorsan is, tehát ha van 8 futó PHP processzed, akkor egyidejűleg 8 kérést szolgálsz ki. Kevésnek tűnik, de hetekig nagyon jól megfelelt a célnak. A maradék kérések “sorban állnak”, és várják, hogy az előttük levők kész legyenek, addig a böngésződ homokórázik és tréfás matematikai feladványokon gondolkozik. Túl sok várakozó kérés viszont felnyomja a loadot, foglalja a socketet, meg úgy általában a gép nonreszponzívvá válik, és a processzekre húzott limittel gyakorlatilag tökön szúrod magad egy DoS-szel.)

For the record, hét elején volt egy kisebb para a Lighttpd reggeli logrotálásával, a jelek szerint nem bírta nagyon a rengeteg logot, amit a két site generált, és a rotálás utáni reloadba belehalálozott. Ezt a restarttal tudtam gyorssegélyként kiküszöbölni, szerencsére a Lightynak nem tart 10 másodpercekig az újraindulás, így úgy döntöttem, hogy reggel 6:27 körül (amikor ugye a rotálás megtörtént) egy 2 másodperces restart belefér.

A másik, amiről már beszéltem, de fontos megjegyezni, az Alleycat, ami szintén ámokfutást mutatott be látogatottság terén (4. leglátogatottabb blog), ezért (szintén a hét elején) kikerült az Apache virtualhostok közül és a Lighty-t átkonfiguráltam, hogy kezeljen simple vhostokat (nagyon egyszerű, következésképp nagyszerű megoldás!), és keddtől szinén Lighttpd alatt futott. Ami a Statgépen megintcsak nem látszik, az a filekiszolgálás: az Alleycaten voltak a Yoda-, Chuck Norris-, és hasonló matrica template-ek.

A vhostos megoldás eredménye pedig az lett, hogy (mivel a Lighty egy logfileba tolja az összes vhost logot) iszonyatos mennyiségű log generálódott a hétről. Ezeknek, illetve a Webalizeres feldolgozásuknak külön postot fogok szentelni.

5 hozzászólás “Critical Mass utómatek.” bejegyzéshez

  1. őő, rrd-ket mivel csinálod? valami frameworkel (pl cacti), vagy “kézzel”?

  2. A Munin maga piszkálja az RRD file-okat és grafikonozza is.

    A Lightyhoz közvetlen Munin plugint nem találtam, viszont a mod_rrdtool-lal valószínűleg lehet olyan kimenetet gyártatni vele, amit a Munin megeszik.

    Ha megcsináltad ezt a scriptet, szólj plz, nekem is kéne. :)))

  3. ha akarjatok, adok ftp-t, feltoljatok bezippelve a logot a statgepre, az atnyalazza, es kiszamolja

    hatranya, hogy nem realtime.

    dobjatok emailt ha erdekel.

  4. Hasonlo problemam volt mint az itt leirtak, a lighttpd nalam is megoldast jelentett, azt szeretnem megkerdezni, hogy a php szalakat hol tudnam emelni, nalam a 8-as load is tokeletes lenne, mert meg ekkor is gyors a vas, de shol nem talalok konfigot erre, viszont a 8 szal nalunk hamar elfogy, igaz a load 4 fele nem emelkedik soha.
    Koszi!

Hozzászólások lehetősége itt nem engedélyezett.