În momentul în care folosești servicii de găzduire web sau începi să ai contact cu acestea, vei întâlni frecvent în discuții sau tutoriale termenul CloudLinux. Acesta este în special utilizat pentru mediile de găzduire shared acolo unde capacitățile sale speciale aduc stabilitate și siguranță serverelor și implicit utilizatorilor.

Ce este CloudLinux?

CloudLinux este un sistem de operare bazat pe Linux, special creat pentru comunitatea găzduire web, cu scopul de avea un mediu bine definit pentru fiecare cont de găzduire în parte. Anul lansării este 2010 și de atunci a cunoscut un real succes, devenind aproape indispensabil companiilor de hosting.

Se evită astfel vechi probleme ce existau la nivelul serverelor shared, unde un cont de găzduire cu cPanel de exemplu, nu avea restricții de utilizare a resurselor (procesor, memorie RAM, procese PHP, șamd…). Există așadar un risc foarte mare ca în momentul în care un singur site consumă foarte multe resurse să afecteze performanțele tuturor site-urilor de pe acel server.

Cum funcționează CloudLinux?

Se bazează pe tehnologia LVE (Lightweight Virtual Environment) care își are la rândul ei originile în metoda de virtualizare bazată pe containere. Aceasta permite setarea de limite individuale pe conturi diferite aflate pe același server. CloudLinux permite companiei de găzduire web sau proprietarului de server să controleze procentul de utilizare a procesorului, numărul maxim de nuclee CPU pe care un client le poate accesa, utilizarea memoriei, utilizarea I/O sau numărul de procese concurente care pot fi gestionate de acel utilizator. Este împiedicat astfel abuzul la nivelul resurselor de pe server, acesta limitându-se doar la nivelul contului cu probleme.

Ce se întâmplă când sunt atinse limitele unui cont?

În momentul în care una sau mai multe din limitele amintite mai sus sunt atinse, pot apărea probleme la nivelul contului de găzduire:

  • Consumul memoriei: Poate cel mai popular semn care ne indică faptul că memoria alocată contului nostru a fost atinsă este atunci când site-ul afișează mesajul  „500 Internal Server Error”. Intermitențele care apar la nivelul funcționalității site-ului ne vor confirma oarecum faptul că aceasta este problema. Situația se poate investiga analizând log-urile site-ului unde este posibil, de exemplu să identificăm locația unui script neoptimizat. În felul acesta identificăm sursa problemei și ne putem gândi la o soluție de remediere.
  • Consum procesor: În cazul în care limita setată pentru procesor este atinsă, cel mai probabil vom avea la accesarea site-ului mesajul „503 Service Unavailable”. La fel, pentru identificarea problemei, putem urmări procesele care rulează și îl putem identifica ușor pe cel care consumă excesiv procesor.
  • Număr procese concurente (EP- entry process): Aici mesajul pentru atingerea numărului maxim de procese va fi cel mai probabil   „508 Resource Limit is Reached”. Numărul proceselor alocate poate fi diferit de la un furnizor la altul sau de la un pachet la altul.
    De reținut că valoarea  EP nu va fi crescută în cazul în care un proces PHP care rulează și este contorizat în cadrul LVE, cheamă un proces extern (Ex un cron, Exim, MySQL etc.). Toate acestea vor fi considerate ca o singură intrare pentru că limita pentru entry process nu include procesele copil create în cadrul unui proces care deja rulează și este contorizat.
  • Număr procese alocate (nPROC): Mesajul afișat va fi cel mai probabil același ca și în cazul de mai sus. De reținut aici este faptul că întotdeauna nPROC trebuie să fie mai mare decât EP.

Situațiile care pot duce la epuizarea resurselor dintr-un cont de găzduire pot fi de asemenea multiple, dar putem enumera câteva dintre cele mai frecvente:

  • vârfuri de trafic ce pot aparea în urma unui atac sau în urma unui articol viral sau o campanie de marketing, spre exemplu;
  • scripturi neoptimizate;
  • cron-uri setate inadecvat;
  • site-uri sparte;
  • crawlerele web sau motoarele de căutare care indexează site-ul prea des;

De îndată ce consumul resurselor se reduce sub limitele impuse, situația revine la normal și site-urile din cont vor începe să funcționeze din nou.

Alte facilități  CloudLinux?

Pe lângă benefiicile enumerate mai sus există și alte plusuri ce vin o dată cu utilizarea CloudLinux:

PHP Selector – Permite fiecărui utilizator să aleagă versiunea de PHP ce dorește să ruleze în contul lui de găzduire. Se pot de asemenea activa și dezactiva anumite module PHP. De menționat este faptul că setările se aplică la nivel de cont de găzduire, iar în cazul în care avem mai multe site-uri în același cont trebuie să ne asigurăm că toate sunt compatibile cu opțiunile alese pentru a funcționa corespunzător. Poți afla mai multe despre această facilitate aici.

CageFS – Un set de instrumente ce izolează fișierele fiecărui client și împiedică vizualizarea altor fișiere decât cele din contul nostru. Împiedică de asemenea vizualizarea de către utilizatori a informațiilor sensibile de la nivelul serverului, cum ar fi diverse fișiere de configurare. Are și funcție de protecție, împiedicând atacuri ce permit, de exemplu, dezvăluirea de date sau informații sensibile sau escaladarea privilegiilor.

Apache mod_lsapi  – Este un modul bazat pe tehnologia de la  LiteSpeed pentru PHP, Ruby si Python. Oferă o performanță excelentă pentru PHP, consum de memorie scăzută, securitate sporită și suport pentru opcache.

LSPHP – sau PHP+LSAPI – folosind acest mod de rulare pentru PHP, oferim o performanță foarte mare față de clasicul mod_php pentru aplicațiile web PHP. Lucrul acesta înseamnă o viteză de încărcare mai mare a site-urilor dvs.

Cum utilizăm noi CloudLinux?

Pentru a înțelege mai bine utilitatea CloudLinux vom exemplifica pachetele din oferta noastă de găzduire shared. Noi folosim CloudLinux integrat cu WHM/cPanel pe toate serverele noastre shared încă din 2013 și rezultatele sunt foarte mulțumitoare.
Cei de la CloudLinux au creat un plugin special pentru WHM/cPanel unde există posibilitatea de monitorizare și setare a acestor limite.

După cum putem vedea în oferta de pachete de găzduire Linux shared, există 5 pachete cu caracteristici diferite. Cele controlate de CloudLinux le putem vizualiza în imaginea de mai jos:

Pentru fiecare pachet există limite bine stabilitate cu ajutorul LVE, la niveul de utilizare al procesorului, la nivelul memoriei fizice sau la nivelul numărului de procese alocate. Acestea sunt doar câteva dintre ele.

Monitorizarea limitelor se poate face de către utilizator din cadrul panoului de găzduire cPanel, în secțiunea Statics, unde:

CPU Usage – Specifică în timp real utilizarea procesorului. Dacă limita CPU ajunge la 100%, înseamnă că, contul  utilizează toate resursele alocate și orice proces nou va fi pus în starea de repaus până când procesele existente vor fi terminate. Acest lucru poate determina încetinirea drastică a site-ului și în cazuri extreme, chiar căderea acestuia.

Entry Processes – Numărul proceselor de intrare din contul nostru. De exemplu, fiecare pagină PHP accesată de un utilizator va genera de obicei un singur proces de intrare. Mulți interpretează greșit această valoare ca fiind „numărul de vizitatori pe care îl puteți avea un site simultan”. Deși este adevărat că fiecare vizitator care accesează o pagină PHP va da naștere unui proces de intrare, aceste procese se termină de obicei atât de repede încât este foarte puțin probabil ca 10 sau mai multe, de exemplu, să fie generate simultan și într-un singur moment dacă nu aveți un număr semnificativ de vizitatori simultani pe site dintr-o dată. Sesiunile SSH și cron-urile se consideră, de asemenea, procese de intrare.

Physical Memory Usage (RAM) – Este memoria RAM alocată contului nostru.

Number of Processes – Este o limită asemănătoare cu cea a proceselor de intrare, dar conține toate procesele generate în cont. Acestă limită este de obicei greu de atins chiar și în condiții de trafic intens. Acest lucru se datorează faptului că procesele non-PHP se execută și se închid rapid.

1. Vizualizare limite LVE în Statics

1. Vizualizare limite LVE în Statics

În Metrics – CPU and Concurrent Connection Usage se regăsesc mai multe detalii și se poate face și o analiză pe o perioadă  de timp aleasă (de exemplu 24 de ore).

1. Vizualizare limite LVE în Metrics

Mai jos putem vizualiza exact informațiile pe care le vom regăsi în momentul în care accesăm secțiunea CPU and Concurrent Connection Usage și vom încerca să explicăm termenii întâlniți.

CPU – Limită procesor;
pMEM/pM – Limită memorie;
EP –  Număr procese concurente – entry process;
nPROC/nP – Număr procese alocate;
a – media de utilizare;
l – limita setată pe cont;
f – erori;

Avantajele CloudLinux?

Acum că am parcurs în amănunt subiectul nostru, putem trage câteva concluzii . Putem evidenția avantajele utilizării CloudLinux atăt din punct de vedere al furnizorului de servicii de găzduire web cât și din punctul de vedere al clientului:

  • Server mai sigur și mai stabil cu uptime mai mare
  • Conturi de găzduire web izolate
  • Distribuție unitară a resurselor pentru utilizatori
  • Performanță sporită pentru site-uri
  • Grad sporit de securitate împotriva atacurilor
  • Împiedică abuzul resurselor de la nivelul serverului
  • Compatibilitate cu majoritatea panourilor de control, în special cPanel unde avem posibilitatea de vizualizare și analizare a statisticilor
  • Posibilitatea de selectare versiuni PHP diferite (de la 5.4 până la 7.1)

În cazul în care găsești acest subiect interesant, nu ezita să ne lași un comentariu cu opinia ta. Dacă ai întrebări sau completări legate de utilizarea CloudLinux,  de asemenea te îndemnăm să le împărtășești cu noi.