Entreprenörd

Min blogg om webbutveckling och entreprenörskap

Öka PHP-prestanda med APC

Om du har en webbplats som körs med PHP, bör du nog prova att installera en accelerator som APC. Det kan öka prestanda flera gånger om! (2–10 gånger enligt Wikipedia.)

Vid varje begäran till ditt PHP-skript, måste PHP kompilera det till bytekod innan processorn kan exekvera det. Dumt nog sparas inte denna kompilerade kod någonstans (som i exempelvis Python). Det slösas alltså bort en väldig massa processorkraft på att göra samma sak om och om igen!

Som tur var finns det flera olika acceleratorer som sparar den färdiga bytekoden i minnet. Jag har tittat på APC, som är enkel att installera och ger bra prestanda. Du behöver bara installera och starta om Apache, så är det klart! :-) Plug and play.

Jag mätte själv prestanda (med ab) på ett enkelt PHP-skript som körs på ramverket CodeIgniter och fick detta resultat:

  • Utan APC: 85 ms/anrop
  • Med APC: 20 ms/anrop

De exakta siffrorna är inte så relevanta, det intressanta är förbättringen av prestanda. Klart och tydligt!

Nackdelen med acceleratorer är förstås att de kräver minne för att fungera, men hur mycket är konfigurerbart åtminstone i APC. Apache-processerna delar också på samma cache, så det behöver inte bli så farligt mycket.

Så här installerar du APC under Debian/Ubuntu med Apache 2 (Prefork) och PHP 5:

apt-get install apache2-prefork-dev php5-dev php-pear
pecl install apc

Svara ja på frågorna och lägg till denna rad i php.ini:

extension=apc.so

Starta om Apache, så är det alltså klart — och dina PHP-skript kommer köras betydligt snabbare. Men mät för säkerhets skull prestanda både med och utan APC.

Relaterade artiklar:

Posted in sysadmin | 7 Comments