Încerci să accesezi website-ul și, în locul paginii obișnuite, apare mesajul „Resource Limit Is Reached”? În multe cazuri, acesta este însoțit de codul 508 și indică faptul că website-ul a atins temporar una dintre limitele de resurse stabilite pentru contul de găzduire.
Mesajul poate apărea pentru câteva secunde și apoi să dispară sau se poate repeta frecvent atunci când website-ul are trafic ridicat, procese lente, pluginuri problematice, request-uri simultane sau alte operațiuni care consumă resurse.
Important este că eroarea 508 nu înseamnă automat că serverul este căzut și nici că website-ul are neapărat nevoie imediat de un pachet de hosting mai mare. Primul pas este identificarea resursei care a ajuns la limită și a cauzei care a determinat acel consum.
Ce înseamnă „Resource Limit Is Reached”?
Pe serverele de hosting care utilizează CloudLinux, fiecare cont de găzduire poate avea propriile limite de resurse. Acestea sunt gestionate prin tehnologia LVE – Lightweight Virtual Environment.
Rolul LVE este de a izola consumul fiecărui cont și de a împiedica un singur website să utilizeze necontrolat resursele serverului și să afecteze celelalte conturi găzduite pe aceeași infrastructură.
Printre resursele care pot fi controlate se numără:
- procesorul – CPU;
- memoria fizică – PMEM;
- viteza de citire și scriere – I/O;
- numărul operațiilor pe disc – IOPS;
- numărul de procese – NPROC;
- Entry Processes – EP.
Dacă vrei să înțelegi mai bine modul în care funcționează această tehnologie, poți consulta și articolul nostru Ce este CloudLinux și cum protejează website-urile?.
Ce este eroarea 508?
În CloudLinux, eroarea 508 Resource Limit Is Reached este asociată în mod implicit cu atingerea limitei de Entry Processes.
Atunci când numărul maxim de intrări simultane în mediul LVE al contului este atins, noi cereri pot fi refuzate temporar, iar vizitatorul poate primi mesajul:
Resource Limit Is Reached. The website is temporarily unable to serve your request as it exceeded resource limit. Please try again later.
Limita există tocmai pentru a proteja infrastructura. Dacă un website primește foarte multe cereri simultane sau anumite cereri rămân active prea mult timp, acestea nu trebuie să poată ocupa toate resursele serverului și să afecteze celelalte website-uri.
Codul 508 este codul implicit utilizat de CloudLinux pentru această situație, însă administratorul serverului poate configura comportamentul în mod diferit.
Ce sunt Entry Processes?
Entry Processes, prescurtat EP, reprezintă numărul de procese care intră simultan în mediul LVE al contului pentru a procesa cereri.
În cazul unui website PHP, o cerere HTTP care necesită procesarea aplicației poate contribui la utilizarea Entry Processes.
Un lucru important este că Entry Processes nu reprezintă numărul de vizitatori online.
De exemplu, 20 de vizitatori nu înseamnă automat 20 de Entry Processes. Un utilizator poate genera mai multe request-uri, iar unele dintre acestea se termină foarte repede. În același timp, un număr relativ mic de utilizatori poate produce probleme dacă anumite request-uri durează foarte mult.
Să presupunem că o pagină WordPress are nevoie de câteva secunde pentru a fi procesată din cauza unei interogări lente în baza de date. În această perioadă cererea rămâne activă. Dacă sosesc multe alte cereri similare, numărul de procese active poate crește până la atingerea limitei EP.
CloudLinux precizează și faptul că modul de contabilizare a Entry Processes diferă în funcție de serverul web utilizat. De aceea, EP nu trebuie interpretat ca un contor direct al vizitatorilor simultani.
De ce poate apărea eroarea 508?
Atingerea limitei de Entry Processes este efectul imediat, însă cauza din spate poate fi diferită de la un website la altul.
1. Trafic ridicat într-o perioadă scurtă
O creștere bruscă a numărului de accesări poate genera multe cereri simultane către website.
Acest lucru se poate întâmpla în urma unei campanii de promovare, a publicării unui articol foarte accesat, a unei campanii de newsletter sau în perioadele aglomerate ale unui magazin online.
Dacă aplicația nu reușește să proceseze suficient de repede cererile, acestea încep să se acumuleze și poate fi atinsă limita de Entry Processes.
2. Boți și crawlere
Nu tot traficul unui website provine de la utilizatori reali.
Motoarele de căutare, instrumentele SEO, crawlerele, scanerele automate și boții rău intenționați pot genera un număr mare de request-uri într-un interval foarte scurt.
Un crawler agresiv poate solicita sute sau mii de URL-uri și poate produce un consum ridicat chiar dacă numărul utilizatorilor reali este redus.
3. Pluginuri WordPress lente sau problematice
Un plugin poate executa operații complexe la fiecare accesare a unei pagini, poate realiza multe interogări în baza de date sau poate efectua conexiuni către servicii externe.
Cu cât o cerere PHP durează mai mult, cu atât procesul rămâne activ mai mult timp și crește probabilitatea ca alte request-uri să se acumuleze.
Pluginurile de statistici, securitate, import, căutare, filtre avansate sau sincronizare cu servicii externe merită verificate atunci când problema apare după instalarea sau actualizarea unei extensii.
4. Interogări lente în baza de date
WordPress, WooCommerce și majoritatea aplicațiilor PHP moderne depind în mare măsură de baza de date.
Dacă o pagină execută interogări lente sau foarte complexe, timpul necesar generării paginii crește. În perioadele cu trafic ridicat, mai multe astfel de request-uri pot rămâne active simultan.
Problema poate fi provocată de pluginuri, tabele foarte mari, interogări neoptimizate sau funcționalități care solicită baza de date excesiv.
5. WP-Cron și task-uri automate
WordPress folosește WP-Cron pentru executarea unor activități programate.
Pluginurile pot adăuga propriile task-uri pentru sincronizări, generarea unor rapoarte, procesarea comenzilor, trimiterea emailurilor, importuri sau alte operațiuni.
Dacă există prea multe task-uri sau acestea sunt executate prea des, consumul de resurse poate crește semnificativ.
6. Importuri, exporturi și operațiuni complexe
Importarea unui catalog mare de produse, regenerarea imaginilor, procesarea unor feed-uri sau executarea altor operațiuni complexe poate genera un consum temporar ridicat.
Dacă eroarea apare doar în timpul unei astfel de operațiuni, este important să verifici exact ce proces rula în acel moment înainte să concluzionezi că website-ul are permanent nevoie de mai multe resurse.
7. Website compromis
Un website compromis poate executa scripturi nedorite, trimite request-uri automate sau realiza operațiuni care consumă CPU, memorie și alte resurse.
Dacă observi o creștere bruscă și inexplicabilă a consumului, securitatea website-ului trebuie verificată împreună cu celelalte posibile cauze.
CPU, RAM, I/O, IOPS, EP și NPROC nu produc aceleași simptome
Una dintre cele mai frecvente confuzii este presupunerea că orice resursă ajunsă la limită produce automat eroarea 508.
CloudLinux gestionează diferit fiecare tip de resursă.
| Resursă | Ce controlează | Ce se poate întâmpla la limită |
|---|---|---|
| CPU | Puterea de procesare disponibilă contului | Procesele sunt încetinite |
| PMEM | Memoria fizică utilizată | Procesele pot eșua și pot apărea erori 500/503 |
| I/O | Viteza de citire și scriere pe stocare | Operațiunile sunt încetinite |
| IOPS | Numărul operațiilor de citire/scriere pe secundă | Operațiunile pe disc sunt limitate temporar |
| EP | Numărul de intrări simultane în LVE | Poate apărea eroarea 508 Resource Limit Is Reached |
| NPROC | Numărul total de procese și thread-uri | Procesele noi pot eșua și pot apărea erori 500/503 |
CPU și I/O merită totuși analizate atunci când apare 508. Chiar dacă acestea nu generează direct eroarea 508, un website încetinit de CPU, I/O sau de baza de date poate procesa request-urile mai greu. Cererile rămân astfel active mai mult timp și pot contribui indirect la acumularea Entry Processes.
Pentru o explicație detaliată a fiecărei resurse, poți consulta și articolul Cum alegi resursele unui pachet de găzduire?.
Cum verifici Resource Usage în cPanel?
Dacă website-ul este găzduit pe un server care utilizează CloudLinux și cPanel, consumul resurselor poate fi analizat direct din contul de găzduire.
După autentificarea în cPanel, accesează:
cPanel → Metrics → Resource Usage
În funcție de versiunea interfeței și de configurația serverului, opțiunea poate apărea și sub o denumire similară cu CPU and Concurrent Connection Usage.
Interfața CloudLinux Resource Usage poate conține trei zone importante:
- Dashboard – oferă o imagine generală și indică dacă website-ul a fost limitat;
- Current Usage – afișează consumul resurselor și istoricul acestora;
- Snapshot – poate oferi informații despre procesele și request-urile active în momentul în care au fost înregistrate limitări.
Am pregătit și un tutorial separat pentru această operațiune: Monitorizare resurse cPanel.
Ce trebuie să urmărești în Current Usage?
Secțiunea Current Usage oferă grafice și tabele pentru principalele resurse ale contului.
În funcție de configurația serverului, poți vedea informații pentru:
- CPU;
- Physical Memory;
- I/O;
- IOPS;
- Entry Processes;
- Processes.
În tabel vei întâlni trei informații foarte importante:
- Usage – consumul resursei;
- Limit – limita disponibilă contului;
- Fault – situațiile în care limita respectivă a fost atinsă.
Ce înseamnă Fault în CloudLinux?
Valoarea Fault este foarte utilă atunci când investighezi o problemă de resurse.
Un grafic care arată un consum ridicat nu înseamnă neapărat că limita a fost depășită. În schimb, apariția fault-urilor indică faptul că limita respectivă a fost atinsă în perioada analizată.
În statisticile CloudLinux poți întâlni indicatori precum:
- CPUf – fault-uri CPU;
- EPf – fault-uri Entry Processes;
- PMemF – fault-uri Physical Memory;
- NprocF – fault-uri pentru numărul de procese;
- IOf – fault-uri I/O;
- IOPSf – fault-uri IOPS.
Dacă investighezi o eroare 508, EPf este unul dintre primii indicatori pe care trebuie să îi verifici.
Dacă EPf crește în exact perioada în care website-ul afișează „Resource Limit Is Reached”, există o legătură directă între incident și limita Entry Processes.
Nu te uita doar la consumul din acest moment
O greșeală frecventă este verificarea resurselor la câteva ore după incident și concluzia că nu există nicio problemă deoarece CPU sau EP sunt în acel moment la valori reduse.
Consumul unui website se poate schimba de la o secundă la alta.
De exemplu, site-ul poate avea un vârf de trafic la ora 12:15 și să atingă limita timp de câteva minute. Dacă verifici Resource Usage la ora 14:00, valorile curente pot fi perfect normale.
Din acest motiv, trebuie analizat intervalul de timp în care problema a apărut, împreună cu istoricul și fault-urile înregistrate.
Cum te ajută Snapshot să identifici cauza?
CloudLinux poate genera snapshot-uri atunci când sunt înregistrate incidente legate de limitele LVE.
În funcție de configurația serverului și de datele disponibile, secțiunea Snapshot poate oferi informații despre:
- procesele care rulau în momentul incidentului;
- consumul CPU și memorie al proceselor;
- interogările active către baza de date;
- request-urile HTTP asociate website-ului.
Aceste informații sunt mult mai utile decât simpla constatare că „site-ul consumă multe resurse”.
De exemplu, dacă în momentul incidentului apar în mod repetat request-uri către aceeași pagină, același script PHP sau aceeași funcționalitate WordPress, ai deja un punct concret de la care poți începe investigația.
Cum identifici cauza unei erori 508?
O investigație corectă poate fi făcută în această ordine:
1. Verifică momentul în care a apărut eroarea
Notează aproximativ ora la care website-ul a afișat mesajul „Resource Limit Is Reached”.
Acest lucru te va ajuta să corelezi incidentul cu graficele și fault-urile din CloudLinux.
2. Verifică Entry Processes și EP Faults
Intră în Resource Usage și verifică dacă EP a ajuns la limită și dacă există fault-uri EP în perioada respectivă.
3. Analizează și CPU, I/O, memoria și procesele
Chiar dacă eroarea 508 este legată de EP, este posibil ca motivul acumulării request-urilor să fie un website care răspunde foarte lent din cauza altor resurse.
4. Verifică Snapshot
Dacă există snapshot-uri pentru incident, verifică procesele, request-urile și interogările disponibile.
5. Corelează problema cu modificările recente
Dacă eroarea a început imediat după:
- instalarea unui plugin;
- actualizarea unei teme;
- activarea unei funcționalități noi;
- pornirea unui import;
- lansarea unei campanii;
modificarea respectivă trebuie inclusă în investigație.
Cum reduci consumul de Entry Processes?
Soluția depinde întotdeauna de cauza identificată. Creșterea limitei fără investigarea website-ului poate doar să amâne reapariția problemei.
Folosește cache acolo unde este posibil
Cache-ul poate reduce numărul de pagini care trebuie generate dinamic prin PHP și baza de date.
Pentru website-urile WordPress, configurarea corectă a unui sistem de cache poate reduce semnificativ numărul de request-uri dinamice și timpul necesar procesării acestora.
Verifică pluginurile WordPress
Dacă problema a început după activarea sau actualizarea unui plugin, testează impactul acestuia.
Nu numărul pluginurilor este întotdeauna problema. Un singur plugin prost optimizat poate consuma mai multe resurse decât alte zece pluginuri bine dezvoltate.
Optimizează baza de date
Interogările lente pot prelungi timpul de execuție al request-urilor PHP și pot menține procesele active mai mult timp.
Pentru magazinele WooCommerce și aplicațiile cu baze de date mari, analiza query-urilor poate fi deosebit de importantă.
Verifică WP-Cron și cron job-urile
Task-urile automate care rulează prea frecvent sau care execută operațiuni complexe pot genera consum suplimentar.
Verifică dacă anumite pluginuri au creat evenimente repetitive sau dacă există procese care se suprapun.
Analizează traficul automat
Dacă majoritatea request-urilor provin de la boți, crawlere sau scanere, problema nu trebuie tratată în același mod ca o creștere legitimă de trafic.
În astfel de situații pot fi necesare reguli de securitate, rate limiting sau alte metode de control al traficului automat.
Actualizează website-ul și componentele sale
Versiunile vechi de WordPress, pluginurile abandonate sau codul incompatibil cu versiunile moderne de PHP pot genera probleme de performanță.
Actualizările trebuie realizate controlat și, ideal, după existența unui backup recent.
Când este necesar un pachet de hosting cu mai multe resurse?
Există și situații în care website-ul funcționează corect, este optimizat, nu există trafic anormal, dar resursele disponibile nu mai sunt suficiente pentru nivelul actual de utilizare.
De exemplu, un magazin online care avea inițial câteva sute de produse și un număr redus de vizitatori poate ajunge în timp la mii de produse, mai multe integrări și un volum mult mai mare de trafic.
Într-un astfel de caz, necesarul de resurse crește în mod natural.
Un upgrade trebuie luat în calcul mai ales atunci când:
- limitele sunt atinse frecvent, nu doar în incidente izolate;
- traficul care produce consumul este legitim;
- website-ul a fost verificat și optimizat;
- nu există pluginuri sau procese defecte care generează consum artificial;
- resursele actuale nu mai corespund complexității aplicației.
Upgrade-ul nu ar trebui să fie prima soluție la o eroare 508, ci una dintre soluțiile posibile după identificarea cauzei.
Ce faci dacă eroarea apare doar ocazional?
Un singur fault apărut în timpul unui vârf scurt de trafic nu înseamnă neapărat că website-ul are o problemă permanentă.
Este mai relevant să urmărești frecvența incidentelor.
Dacă eroarea apare o singură dată în timpul unei operațiuni complexe și apoi nu se mai repetă, situația este diferită de un website care ajunge zilnic la limita EP.
În schimb, dacă utilizatorii văd frecvent mesajul Resource Limit Is Reached, trebuie investigată cauza și nu doar așteptat ca resursele să se elibereze.
Resource Limit Is Reached nu înseamnă automat o problemă a serverului
Atunci când apare o eroare de resurse, este important să facem diferența între infrastructura de hosting și aplicația care rulează pe aceasta.
CloudLinux este conceput tocmai pentru a izola consumul fiecărui cont. Astfel, atingerea unei limite de către un website nu înseamnă în mod automat că întregul server a rămas fără CPU, memorie sau alte resurse.
Cauza poate fi la nivelul:
- traficului website-ului;
- aplicației;
- unui plugin;
- bazei de date;
- unui script;
- unui proces automat;
- resurselor alocate pachetului de găzduire.
Din acest motiv, informațiile oferite de CloudLinux Resource Usage în cPanel sunt primul punct de plecare pentru o analiză corectă.
Cum previi reapariția erorii 508?
Monitorizarea resurselor nu trebuie făcută doar atunci când website-ul nu mai funcționează.
Verificarea periodică a secțiunii Resource Usage te poate ajuta să observi din timp dacă anumite resurse se apropie frecvent de limite.
Pentru un website WordPress sau WooCommerce este recomandat să urmărești:
- creșterile neobișnuite de CPU;
- fault-urile Entry Processes;
- consumul de memorie;
- request-urile lente;
- pluginurile care execută operațiuni complexe;
- task-urile cron;
- traficul automat și boții;
- performanța bazei de date.
Pe serviciile NameBox care utilizează CloudLinux și cPanel, aceste informații pot fi verificate direct din contul de găzduire, fără acces administrativ la server.
Atunci când apare din nou mesajul „Resource Limit Is Reached”, nu porni direct de la ideea că soluția este creșterea resurselor. Verifică mai întâi ce limită a fost atinsă, când s-a întâmplat și ce procese sau request-uri rulau în acel moment. De cele mai multe ori, aceste trei informații te conduc mult mai repede către cauza reală a problemei.