Un potențial client care deținea un blog mic ne-a întrebat dacă nu oferim php_memory_limit mare (1024 MB) față de 256 MB, cât este setarea default pe serverele shared Simplenet.
Dacă ai o aplicație PHP mai complexă (un magazin online, de ex) atunci un memory limit mai mare are sens, combinat și cu un max_execution_time mai mare. De aceea permitem ridicarea limitei la 1024 MB prin introducerea unei linii de cod în fișierul .htaccess:
php_value memory_limit 1024M
Dar hai s-o luăm cu începutul, poate nu toată lumea știe „chineză”.
Ce este memory_limit?
memory_limit este o directivă de configurare care stabilește mărimea maximă a memoriei pe care un script PHP o poate aloca. Limita este folosită ca să se evite situațiile când un script prost scris consumă toată memoria disponibilă pe server.
Ce este max_execution_time?
max_execution_time este o altă directivă care stabilește timpul maxim în secunde pentru care poate rula un script PHP. Limita asta previne ca un script prost scris să ruleze la infinit și să blocheze serverul.
Bun, deci limitele astea sunt folosite cu un scop. Pot fi mai mici sau mai mari în funcție de firma de hosting.
La majoritatea firmelor de hosting limita e setată la 256 MB. Pentru WordPress este o valoare mai mult decât suficientă. Alte firme de hosting, dacă sunt axate pe magazine online (Magento) pot avea setate și valori mai mari.
O instanță WordPress obișnuită n-ar trebui să consume mai mult de 40 MB, iar dacă folosești WooCommerce 64 MB.
Dacă blogul sau site-ul tău de prezentare are nevoie de peste 256 MB înseamnă că ai o problemă mare de performanță.
Iar soluția nu este să pui un memory limit mare ca să acoperi erorile. Soluția corectă este un audit de performanță pentru a identifica și a rezolva problema.
Dar totuși, nu e mai bine să fie mai mare decât mai mic?
Dacă nu ai probleme de performanță, valoarea setată pentru memory limit e complet irelevantă.
Să presupunem că nu ai nicio problemă de performanță și instanța ta WordPress consumă, hai să zicem, 32 MB.
În acest caz, site-ul tău se va încărca exact la fel de repede chiar dacă valoarea memory limit este 64 MB sau 1024 MB.
Iar dacă mâine îți crește traficul de 100 de ori, instanța ta WordPress nu va avea nevoie de 100 de ori mai multă memorie ca să ruleze. Creșterea consumului de memorie va fi destul de mică. Memoria consumată de WordPress ca să ruleze nu crește odată cu traficul. Ea crește odată cu scripturile PHP care trebuie să ruleze la inițializarea WordPress. De exemplu, cu cât ai mai multe plugin-uri instalate sau o temă cu foarte multe opțiuni.
Când te ajută memory_limit?
Cel mai frecvent este vorba de un script PHP cu probleme (un plugin făcut prost sau cod prost scris în temă) și există un memory leak.
Adică instanța ta de WordPress consumă foarte multă memorie ca să ruleze. Iar un memory limit setat la o valoare mai mare te ajută să nu-ți apară erori.
În cazul ăsta, mărirea limitei înseamnă de fapt să ascunzi mizeria sub preș. De preferat ar fi se facă un audit de performanță ca să se identifice problemele și să fie rezolvate, nu să le ascundem sub preș. Dar asta este decizia fiecăruia.
Un alt caz în care este utilă o limită mai mare de memorie este pentru magazine online care fac importuri de produse sau actualizări de prețuri pentru un număr foarte mare de produse și în baza de date WordPress sunt scrise multe date, operațiune care necesită memorie și un timp mai mare de execuție.
În acest caz este necesară o ridicare a limitei, lucru care se poate face introducând o line de cod în fișierul .htaccess din folderul unde e instalat WordPress:
php_value memory_limit 1024M
Lasă un răspuns