Optimizarea performanței serverului cu php

Esența problemei a fost că serverul rulează un joc online scris în php.
Deci, serverul este puternic și nu este scris cu mâini stângace, dar serverul abia respiră, puțin mai mult și doar se va culca. Este imposibil să lucrezi, chiar și frânele consolei.







M-am uitat la încărcătură, aceasta se stinge de la media de încărcare: 10.54, 10.28, 9.96

M-am gândit cum să o rezolv. Pentru a optimiza funcționarea acestui site, merită să înțelegeți cum funcționează php-ul.

Faptul este că php nu este doar un script cu instrucțiuni pentru un anumit program. Esența lui constă în faptul că fiecare scenariu trece prin mai multe etape înainte de a reveni la rezultat:

  1. Scriptul este tradus într-un octet
  2. În progres
  3. Rezultatul este afișat de server

Al doilea și al treilea curs, dar primul este familiar programatorilor la un limbaj mai complex decât php. Bytecode este deja un set de instrucțiuni, fiecare echivalent cu una sau mai multe instrucțiuni de asamblare. Acest cod se execută în zeci de ori mai rapid decât un script care ruleaza programul. Doar o singură problemă pentru a traduce script-ul în codul byte consumă o mulțime de resurse pentru un singur scenariu, desigur, este un nonsens, dar atunci când există zeci și sute de excursii la server, că resursele de server, apoi deja încep să fie utilizate în cantități nemerenoe.

Există o cale de ieșire. Pentru a evita risipirea resurselor în traducerea script-urilor în bytecode, puteți stoca scripturile utilizate frecvent deja în această stare, ceea ce va reduce considerabil consumul de resurse server.

Pentru aceasta, există multe programe, am decis să folosesc unul dintre acestea - eAccelerator.

Acesta este un modul ușor de configurat pentru php.

Instalarea eAcceleratorului







Așa că procedați la instalare. Conectați-vă la server prin intermediul SSH bine sau, dacă există acces direct, accesați consola.

Creez directorul / usr / local / eAccelerator. în care vom lucra și vom merge în ea

Acum mergeți la directorul eaccelerator-0.9.5.3:

Opțiunea -with-eaccelerator-partajată-memorie este necesară pentru a utiliza eAccelerator API. Lista completă de opțiuni.

De fapt, modulul este acum gata și instalat în directorul / usr / lib / php / modules /. unde sunt instalate toate modulele php

Acum este momentul să conectați modulul și să îl configurați, decât acum și să îl faceți.

Fișierele pentru conectarea modulelor php se află în dosarul php.d. Când descărcați Apache, acesta citește toate fișierele cu extensia ini din acest folder.

Descrierea principalelor atribute de configurare ale eAccelerator

Dimensiunea cache-ului de memorie partajată este setată în megaocteți.

Directorul pentru memoria cache a discului. eAcceleratorul stochează în directorul specificat o reprezentare binară a codului, sesiunii și a altor date.

Cu această opțiune, puteți dezactiva și activa eAccelerator. Valoarea 1 este activată, 0 este dezactivată.

Specifică, în câteva secunde, timpul după care codul lung neutilizat ar trebui să fie eliminat din memoria partajată atunci când este depășită cantitatea de memorie alocată.

Implicit această opțiune este dezactivată, vă recomand să setați valoarea de la 60 la 300 cu un număr mare de fișiere și de la 900 la 1800 cu un număr mic de fișiere.

Când eAcceleratorul nu are suficientă memorie liberă, încearcă să ștergă datele vechi dacă încercarea anterioară a fost făcută mai mult decât "shm_prune_period" secunde în urmă. Valoarea implicită este "0", în care eAccelerator nu va încerca să ștergă datele vechi din memorie.

Opțiunile indică modalitățile disponibile de salvare a cache-ului eAccelerator.
Valorile posibile sunt:

  • shm_and_disk - cache-ul de date în memorie partajată și pe disc (în mod implicit);
  • shm - cache de date în memorie partajată sau pe disc dacă memoria partajată sau dimensiunea datelor este mai mare decât "eaccelerator.shm_max";
  • shm_only - cache-ul de date în memoria partajată;
  • disk_only - cache-ul de date de pe disc;
  • nimeni nu este stocat în cache.

Acum creați un dosar pentru memoria cache, pe care l-am specificat în directiva eaccelerator.cache_dir - / tmp / eaccelerator și dați permisiunea de scriere

Configurația reală a fost terminată, reporniți acum Apache:

concluzie

De fapt, ce a dat. De fapt, nici măcar nu m-am așteptat la un astfel de rezultat, dar încărcarea pe server a scăzut de zeci de ori.

medie de încărcare: 0,91, 0,88, 0,72







Articole similare

Trimiteți-le prietenilor: