Inom kort så släpps Microsofts nya operativsystem Windows Server 2008, nyheterna är många men en intressant är Server Core, MS har tillsammans med Zend optimerat Windows Server 2008 till den grad att Server Core installationen ska vara den snabbaste plattformen att köra PHP på.
Kan då detta verkligen stämma? Bra fråga, jag bestämde mig för att göra ett test.
Jag kommer att uppdatera det här blogginlägget löpande under testet.
Installation
För att förenkla allt för mig så installerar jag systemen på våra VMWare servrar, dessa bättre prestanda än våra vanliga servrar.
Jag har sedan tidigare en FreeBSD 6.3 installation med samma konfiguration som våra vanliga webbservrar.
Installationen av Windows Server 2008 Web Edition i Server Core läge gick lagom fort, 7 minuter tog hela installationen. Jag vill förtydliga att jag inte kör någon beta eller release candidate utan den slutgiltliga versionen.
Uppdaterat 2008-02-11 14:56
Installationen av PHP gick väldigt smidigt men däremot felsökningen gick inte lika smidigt. Efterinstallationen av PHP så fungerade en fil med phpinfo() utan problem, men däremot WordPress vägrade fungera. I Server Core så har man inget GUI utan enbart kommandotolken att arbeta med och innan man kom på alla kommandon med mera så blev det mycket googlande. Felmeddelandet sa endast att det var ett internt fel punkt slut, jag var alltså tvungen att få fram lite mer detaljerad information, när jag väl fått detta så visade sig felet vara att jag hade glömt ange att MySQL-servern jag använder i testet går via port 3305 och inte standard 3306
Felet låg alltså bakom tangentbordet och inte på servern…
Uppdaterat 2008-02-12 08:30
Efter att ha fått både Windows och FreeBSD att fungera som de ska med PHP och WordPress så började jag igår kväll med lite enklare tester, det visade sig inte alls vara roliga tester, FreeBSD visade sig vara ca 3ggr effektivare än Windows. Jag gjorde en stresstest med Microsofts Web Application Stress Tool, 40 trådar med 2 “sockets” per tråd, vid ca 20 anslutningar per sekund så gick processorn på Windows-servern upp till 100%. När jag kom in till kontoret nu på morgonen så berättar Melker att FreeBSD är en 64-bitars installation, medan min Windows-installation är en 32-bitars, lite amatörmässigt av mig jag vet
. Så nu blir det en ominstallation av Windows-servern. Tror dock att slaget är förlorat för Windows
Lite information om serverkonfigurationen:
Båda servrarna har fått en CPU(endast en kärna) och 1GB ram tilldelat sig. CPU:n är en XEON 2.33 GHz.
PHP 5.2.5 är installerat och senaste versionen av MySQL är installerat på en separat databas-server.
Inga kunder eller andra tänster körs på servrarna.
Uppdaterat 2008-02-12 14:12
Jag har upptäckt ett litet fel i mitt test, en felkonfiguration av stressverktyget. Jag tittar just nu på nya resultat och återkommer när dessa är klara.
Uppdaterat 2008-02-12 14:25
Jag var för snabb med att rapportera tidigare idag, vid närmare titt i rapporterna så visade det sig att testet mot FreeBSD-servern hade genererat enbart 404:or, dvs servern hade inte kunnat leverera PHP-sidorna utan hade visat en statisk html-sida. Jag åtgärdade detta och gjorde testet på nytt, med helt andra resultat, men eftersom jag känner mig osäker så har jag bett våra FreeBSD-tekniker ta en titt på konfigurationen och bett dem optimera FreeBSD-servern.
Uppdaterat 2008-02-13 16:31
Äntligen har jag haft tid att slutföra testerna
Det visar sig at Windows Server 2008 står sig bra mot FreeBSD 6.3, vid låg belastning (200 samtidiga anslutningar med ett anrop per anslutning under en minut), FreeBSD vinner över Windows med nöd och näppe. Men under en hög belastning (50 anslutningar med 10 anrop per anslutning) så utklassar Windows FreeBSD ganska ordentligt och klarar av dubbelt så mycket.
Summering
Apache, som webbservern på FreeBSD klarar inte av flertrådade anslutningar, som ofta uppstår vid hög belastning, lika bra som Windows webbserver IIS gör. Under en jämn, normal last så presterar IIS7(Windows) och Apache 1.3(FreeBSD) nästan lika bra, skillnaden är försumbar.