Cum pot testa capacitatea de încărcare a unui site web (test de stres)?
Salutare, prieteni!
Imaginați-vă următorul scenariu: lansați o campanie publicitară majoră, anunțați o reducere masivă sau tutorialul dumneavoastră tehnic devine brusc viral. Mii de utilizatori accesează site-ul simultan și, în loc de conversiile sau vizualizările mult așteptate, serverul pică cu o eroare înfricoșătoare de tip 502 Bad Gateway sau 504 Gateway Timeout. Infrastructura nu a rezistat impactului, afacerea pierde bani și loialitatea publicului, iar echipa de administratori încearcă în panică să repornească containerele Docker.
Pentru a evita acest coșmar, există testarea de încărcare (Performance / Stress Testing). Aceasta este o simulare a unui aflux extrem de vizitatori în condiții artificiale, controlate. Scopul său este de a conduce intenționat serverul până la punctul de refuz, de a găsi „gâturile de sticlă” din cod sau din configurația bazei de date și de a înțelege ce sarcină reală poate susține proiectul dumneavoastră. Efectuarea unui astfel de test este vitală pentru orice server sau site, asigurându-vă că nu veți pierde clienți în momentele de vârf. Aș compara acest proces cu testarea unui computer personal: hardware-ul trebuie verificat sub presiune din când în când pentru a depista din timp problemele ascunse.
În acest material, vom analiza metodologia desfășurării unui test de stres corect în anul 2026, vom examina cele mai bune instrumente moderne de generare a traficului și vom învăța cum să interpretăm rezultatele.
Key Takeaways: Principalul despre testarea de stres
Căutați punctul de rupere: Un test de stres nu este doar o verificare a stabilității, ci o căutare a limitelor infrastructurii. Trebuie să măriți sarcina până când site-ul începe să genereze erori sau încetinește critic. Atunci veți cunoaște limita exactă a serverului și veți putea face upgrade la specificații sau ajusta arhitectura în timp util.
Testați din exterior, nu din interior: Nu rulați niciodată un generator de încărcare pe același server care găzduiește site-ul. Procesul de testare va consuma resursele aplicației, iar rezultatele vor fi false.
Protejați canalul local: Internetul de acasă sau Wi-Fi-ul de la birou vor deveni o gâtuitură de sticlă în timpul testului. Sarcina trebuie generată de pe instanțe VPS/VDS cloud terțe, echipate cu un port de rețea garantat de un gigabit.
Monitorizați metricile: Testul în sine este inutil fără o monitorizare paralelă (Netdata, Prometheus/Grafana sau Uptime Kuma). Trebuie să vedeți în ce anume se blochează serverul: în CPU, memoria RAM, IOPS-ul discurilor sau limitările serverului web.
Instalarea unei aplicații de monitorizare
Pe canalul nostru de YouTube, am filmat un ghid video care acoperă instalarea diferitelor instrumente de monitorizare. În acest articol, vom analiza implementarea Netdata, un instrument excelent pentru urmărirea telemetriei serverului în timp real:
Toate comenzile necesare pentru configurare le veți găsi în descrierea videoclipului și în comentariul fixat. Cu ajutorul lor, puteți instala cu ușurință agentul de monitorizare pe Ubuntu, puteți porni serviciul, configura firewall-ul UFW și accesa interfața web Netdata pe portul 19999.
Load, Stress, Spike sau Soak: Care este diferența?
Mulți oameni confundă tipurile de testare a performanței, rulând un test liniar standard și numindu-l test de stres.
Pentru a înțelege formele graficelor de trafic, consultați tabelul comparativ de mai jos:
| Tip de testare | Cum se aplică sarcina | Scopul principal al testului | Ce se verifică în final |
| Load Testing (Încărcare) | Vârf anticipat (de exemplu, 500 de utilizatori timp de o oră). | Verificarea performanței în condiții standard de producție. | Stabilitatea timpului de răspuns (Response Time). |
| Stress Testing (Stres) | Sarcina crește treptat până la refuz (0 - 5000+ utilizatori). | Găsirea limitei fizice și a plafonului critic al sistemului. | Punctul exact în care serverul începe să genereze erori 5xx. |
| Spike Testing (Vârfuri) | Un vârf exploziv și imediat de trafic, în câteva secunde. | Simularea traficului viral sau a efectelor de tip aflux brusc. | Capacitatea serverului de a scala rapid procesele interne. |
| Soak Testing (Fiabilitate) | Sarcină medie pe o durată lungă (24–48 de ore). | Descoperirea defectelor ascunse ale infrastructurii. | Detectarea scurgerilor de memorie (Memory Leaks) în software. |
Instrumente de generare a traficului: Ce să alegeți?
Alegerea utilitarului influențează direct acuratețea și validitatea rezultatelor testului. Bătrânul instrument ab (ApacheBench) din anii 2000 nu mai poate face față cerințelor actuale: rulează pe un singur fir de execuție al procesorului și atinge rapid propriul plafon de performanță, nereușind să încarce hardware-ul multi-core modern.
În anul 2026, două soluții au devenit standarde în industrie:
k6 (de la Grafana): Scris în Go, incredibil de rapid, utilizează perfect toate nucleele CPU și consumă un minimum de RAM. Scenariile de testare sunt scrise în limbajul familiar JavaScript.
Locust: Scris în Python. Ceva mai consumator de resurse, dar dispune de o interfață web excelentă, grafice în timp real și permite scrierea unor scenarii complexe și flexibile de comportament al utilizatorilor în Python pur.
Algoritmul pas cu pas pentru desfășurarea testului de stres
Pentru a vă asigura că nu prăbușiți un proiect activ în mijlocul zilei de lucru și pentru a obține date obiective, respectați un protocol strict de testare:
Pasul 1. Pregătirea unui mediu izolat
Nu efectuați niciodată un test de stres live pe un server de producție în timp ce clienții reali îl utilizează. Creați o replică exactă (snapshot) a sistemului dumneavoastră pe un server separat, migrați baza de date și configurați containerele Docker și Nginx într-o configurație identică.
Pasul 2. Selectarea și configurarea generatorului de încărcare
Închiriați una sau mai multe instanțe VPS terțe care vor juca rolul de „clienți”. Instalați k6, de exemplu. Scrieți un script de bază care nu doar solicită pagina principală a site-ului, ci simulează un comportament real: accesarea primei pagini, navigarea în catalog și trimiterea unei cereri POST într-un formular de căutare. Parsarea simplă a activelor statice încarcă doar placa de rețea, în timp ce interogările grele către baza de date stresează procesorul.
Pasul 3. Rularea testului cu creștere treptată (Ramping Up)
Începeți testul cu valori mici — de exemplu, 10 utilizatori virtuali (Virtual Users / VU). La fiecare 2 minute, măriți acest număr: 50 -> 200 -> 500 -> 1000 -> 2000. Monitorizați cu atenție graficul timpului de răspuns. În momentul în care curba Response Time crește brusc, iar serverul web începe să returneze erori, opriți testul. Ați găsit limita.
Pasul 4. Analiza blocajelor (Bottlenecks)
Examinați rapoartele de monitorizare ale serverului țintă în momentul maxim de încărcare:
Procesor la 100%, memorie RAM liberă: Problema se află în codul aplicației (optimizare slabă a scripturilor) sau într-o frecvență scăzută a unui singur nucleu CPU.
Memorie RAM epuizată, procesor inactiv: Limite configurate incorect pentru PHP-FPM, Docker sau bufferele MySQL (sistemul a intrat în SWAP).
Resurse libere, dar site-ul generează erori: V-ați lovit de limitările sistemului de operare (cum ar fi limita fișierelor deschise
ulimitsau conexiunile maxime în Nginxworker_connections).
FAQ: Pe scurt despre principalul
Poate un furnizor să considere testul de stres drept un atac DDoS?
Da, și în 95% din cazuri exact așa se va întâmpla. Sistemele automate de protecție ale centrului de date vor detecta o avalanșă de cereri UDP sau TCP de la o singură adresă IP și o vor bloca la perimetru. Înainte de a începe o testare la scară largă, notificați obligatoriu suportul tehnic al furnizorului dumneavoastră de găzduire despre fereastra planificată. În caz contrar, riscați ca adresele IP să fie banate de furnizor.
Care este diferența între RPS și Concurrency?
Concurrency (utilizatori concurenți) reprezintă numărul de persoane care mențin o conexiune simultană și activă cu site-ul dumneavoastră. RPS (Requests Per Second) este numărul de cereri individuale pe care serverul le procesează într-o singură secundă. Un singur utilizator care dă click-uri active pe pagini poate genera 10–20 RPS din cauza încărcării activelor și a apelurilor API.
Concluzie
Testarea de stres este singura modalitate de a evalua obiectiv rezistența infrastructurii dumneavoastră IT înainte ca sarcinile extreme din lumea reală să o pună la încercare. Auditurile regulate vă permit să optimizați fișierele de configurare la timp, să descoperiți interogări SQL grele și să calculați cu exactitate bugetele de scalare a serverelor pe măsură ce afacerea crește.
În generarea și susținerea sarcinilor de vârf, integritatea și stabilitatea hardware-ului fizic sunt critice. Dacă nucleele virtuale ale serverului sunt partajate cu zeci de alți clienți (overselling), sistemul va începe să funcționeze cu latență cu mult înainte de a-și atinge limitele teoretice, din cauza restricțiilor ascunse ale hypervisorului.
Autorul articolului — Anatolie Cohaniuc

