Pro PHP na Windows 2008 / IIS7 potřebujete Zend Server

MyEgo.cz

home foto blogy mywindows.cz kontakt

Pro PHP na Windows 2008 / IIS7 potřebujete Zend Server

Tento týden jsem v praxi otestoval hromadu různých kombinací PHP a akcelerátorů na Windows 2008 Serveru s IIS7. Pár poznatků o tom, co dělat a nedělat:

  • non-TS (non-thread-safe) verze PHP je na Windows s FastCGI (které se samo stará o thread-safe prostředí) zhruba o 30% rychlejší než TS verze, použijte pokud možno vždy non-TS verzi
  • verze PHP z PHP.net není v praxi to samé (i ve stejném vydání 5.2.9) co přímo od Zendu, ta z PHP.net vykazovala brutální memory leaks (php-cgi.exe nabobtnal během 2 hodin z 20MB na 300MB), zatímco verze od Zendu ne
  • eAccelerator je mírně pomalejší než Xcache - na Windows zvláště proto, že potřebuje TS verzi PHP (non-TS binárka není k dispozici)
  • eAccelerator není rovněž 100% stabilní a občas (10x denně), shodil celý php-cgi.exe proces a vyhodil segmentation fault (IIS7 jej ihned nahodí znovu, ale z logu je to vidět)
  • Xcache pro změnu nepracuje úplně korektně s pamětí při použití více FastCGI procesů a občas dochází k locknutí
  • oproti tomu Zend Optimizer+ je na Windows 2008 Serveru s IIS7 dokonale stabilní a server s ním funguje doslova božsky a opravdu rychle - vytížení IIS7 stroje kleslo po nasazení Zend Serveru při stejném množství uživatelů z cca 30% na 10% (oproti non-TS verzi bez akcelerátorů)

Vyplývá z toho v podstatě jedno - pokud provozujete opravdu rozsáhlý web s IIS7 + SQL Server 2008 (nesmírně výkonná a 100% stabilní databáze, ale o tom později), stáhněte si Zend Server, a případně i zaplaťte support. Vyplatí se to :-)

Mimochodem, žádné nahoře zmíněné řešení nevykazuje praktický problém, pokud testujete v pár desítkách až stovce uživatelů. Uvedené platí pro vysokou zátěž a desítky pageviews denně na uživatele.

 


Komentáře

  1. 1 Filip Krejčí 09.04.09, 08:04:34
    FB

    Nenahrazuje Zend Server jakožto aplikační server ISS?

    Z článku to vypadá jako kdyby to běželo najednou.

    Nebo se jednou pouze o ten zmíněný Zend Optimizer. Pak ale nechápu tu zmínku o Zend Serveru.

    Díky za vysvětlení.

  2. 2 Radek Hulán 09.04.09, 09:04:45
    FB

    [1] Zend Server má řadu komponent. My z něj používáme jen jeho verzi PHP, extensions, a pak zejména Zend Optimizer+ (bytecode kompilátor a optimalizátor skriptů), následně toto PHP běží jako FastCGI pod IIS7 a přes SQL Server Driver for PHP se napojuje na SQL Server 2008 databázi.

  3. 3 Votoček Patrik 25.04.09, 09:04:43
    FB

    Zdraví mám také virutuální W2K8 s IIS7 koukal jsem se i po Zend Serveru ale našel jsem pouze x86 verzi a nedaří se mi najít x64... Nevíte kde se dá sehnat? Existuje vůbec? Nebo to funguje s x86 verzí?