CM gyorsítósáv: Apache -> LigHTTPd az alleycat.hu és a criticalmass.hu alatt.

A criticalmass.hu (és az alleycat.hu) gyorsításának második lépése az Apache kiváltása valami rendes webszerverrel. (Tegnapi Homár-levél után szükségszerű.)

Az eddigi setup egy Apache 1.3 virtualhostokkal, és minden modullal, ami egy szolgáltatásban adott virtual host környezetben szükséges. (Az sok.)

Ezt első körben lecsere Apache 2-re, mod_php4, mod_proxy, mod_rewrite modulokkal. (Az pont annyi, amennyi kell.) Ezen kívül régi szerelmem, a LigHTTPd felkerült újra a 8080-as portra, kezdetben kizárólag simple-vhost modullal. (Erre ugyebár azért van szükség, mert 2 siteot szolgált ki.)

Az Apache 2 figyelt a bringás siteok 80-as portján és egy rafkós rewrite szabállyal a statikus kéréseket továbbdobta a 8080-as porton figyelő Lighty-nak.

Na ez nem működött. A terhelés nem csökkent számottevően, az Apache 2 tényleg olyan tetűlassú, mint amilyennek hírlik. A statikus tartalmat lehet, hogy simán érdemes lett volna Apache 2-vel kiszolgálni, de az alapvető probléma az Apache 2 processzek által támasztott CPU terhelés volt még akkor is, amikor az összes child processzt induláskor forkoltam le, és egy child 4096 kérést szolgálhatott ki.

Maradt az, hogy a Lighty figyeljen kizárólag a 80-as porton. Ez (tapasztalat) kb. ötödére csökkenti a loadot, gyors, mint Magwas kéccáhon, cserébe nem parsolja a .htaccess fileokat, statikusan kell megadni a configban a rewrite szabályokat — ráadásul a szintaktika is más, mint az Apache-oknál.

A jelenlegi rewrite szabályok:

url.rewrite-final = (
"^/system/test/(.*)$" => "/index.php?q=system/test/$1",
"^/([^.?]*)?(.*)$" => "/index.php?q=$1&$2",
"^/([^.?]*)$" => "/index.php?q=$1",
"^/search/node/(.*)$" => "/index.php?q=search/node/$1",
"^/rss.xml$" => "/index.php?q=rss.xml"
)

Ezzel a jelek szerint pattan mind a két site, de persze szólj, ha találsz valami hibát.

A PHP futtatásához bekerült még egy fastcgi modul a Lightyba, a PHP cgi-ként fut, 2 processzben, processzenként 4 child processzel. (Default beállításként 10000 request per child.)

Php-cgi fine tuning még hátravan, egyelőre a 8 megás memórialimitet nyomtam fel 32 megára, mert a Drupalnak ennyi általában kell.

Ha rewrite-ből adódó hiba merül fel, írj. Ha bármilyen más hiba merül fel, írj. Lipilee ezen a domainen.

Update: Két benchmark: itt és itt.

Dejahu bővítések.

Az új idők első szeleként a Dejahu szerverek tegnap este bekaptak egy bővítést: prociduplázás (+2 Opteron core), memória 6 GB, és összesen plusz 2,8 TB (4×500+2×400) vincsi, persze RAID-ben.

A következő pár napban pedig a nagy forgalmú siteok (igen, közeleg a Critical Mass) átállnak Lighty-ra (addig nem nyugszunk, amíg stabilan nem működik a Drupal Lightyval), és (rég meg kellett volna tenni, csak nem volt rá idő) InnoDB-re az adatbázisok.