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.

To respond on your own website, enter the URL of your response which should contain a link to this post's permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post's URL again. (Find out more about Webmentions.)