PHP5 se rijetko susreće kod naših, ali i kod stranih web providera. Obično nemaju poseban server namijenjen za PHP5 već imaju PHP4 koji radi kao mod_php dok PHP5 radi kao .cgi. Tu pomalo trpe performanse, a shared hosting je i inače skup brojnih veseljaka tako da nikada ne možete sa sigurnošću znati kako će se vaše stranice nositi sa svojim posjetiteljima. Čini mi se da će shared hosting, kao takav, polako odumirati. Oni koji imaju samotne stranice na kojima vlasnici nose više od 50% hitova zacijelo će otići na neki jeftini servis kod velikih providera koji će nuditi cjelokupno rješenje za mali ili nikakav novac. Oni malo napredniji će razmisliti o drugim mogućnostima. Dolazi vrijeme virtualizacije, ja već polako mjerkam kojeg ću VPS providera odabrati. Kriteriji su mi stabilnost, povoljna cijena, Xen, odabir distribucije...
Ali dok to vrijeme ne dođe, odlučio sam napraviti mali test da vidim koliko su brži mod_php i mod_python od svojih .cgi obličja. Server na kojem sam isprobavao imao je 128MB memorije (nije to malo, minimalni zahtjevi za Ubuntu Server su 64MB ;-) ) a u njemu je kucao Pentium III (Katmai) na 450MHz. VPS-ovi koje sam gledao su otprilike u tom rangu.
Šok za web server osigurao je Siege. Okolina je bila čista, bez prometa. Rezultati:
250 transakcija - 25 istovremenih posjetitelja | vrijeme (s) | br. trans. u sekundi | pr. broj sim. konekcija | najduža transakcija sek. | najkraća transakcija sek. |
mod_php | 7.53 | 33.57 | 0.72 | 0.07 | 0 |
mod_python | 8.02 | 31.19 | 1.65 | 0.36 | 0.01 |
cgi (python) | 19.93 | 12.61 | 9.86 | 10.73 | 0.06 |
cgi (php) | 32.44 | 7.71 | 12.57 | 23.21 | 0.08 |
Nisam išao na preveliko opterećenje već sam odabrao parametre koji nisu ni preveliki ni premali za prosječnu .hr stranicu. Dobiveni rezultati ne trebaju se uzeti kao rezultat nekog znanstvenog istraživanja već su više pokazatelj brzine testiranih tehnologija. Nisam ništa optimizirao, postavke na serveru su defaultne, onako kako je instaliran. Skripte su bile jednostavne (petlja koja je generirala sadržaj stranica), ali nije isključeno da su mogle biti i bolje napisane.
Mod_php je najbrže obavio zadatak (prosjek od 3 mjerenja), mod_python mu je tu odmah iza leđa, ali malo sporije je obrađivao zahtjeve pa je prosječan broj simulatnih konekcija bio duplo veći nego kod PHP-a. .cgi-ovi su posebna i znatno sporija priča. .cgi Python (2.4) je osjetno brži od php5_cgi-a, ali su oba znatno sporija od mod inačica i predstavljaju znatno opterećenje za server. FastCGI bi omogućio ravnopravniju borbu, ali nisam primjetio da ga provideri koriste.
Zaključak? .cgi je sporiji ma koliko vas pokušali uvjeriti u suprotno.