Load Balancing

Sisteme de echilibrare a încărcării serverului Web (Partea 1)

Instrumente de performanță pentru servere web

Industria de comerț electronic continuă să evolueze, iar astăzi toate companiile noi încep să comunice cu clienții lor prin intermediul Web-ului. Un site de înaltă performanță capabil să furnizeze materiale rapid și fără eșec nu numai că ajută la atragerea de noi clienți. Aceasta devine o condiție esențială pentru funcționarea cu succes a întreprinderilor de comerț electronic și creșterea competitivității acestora. Cu greu clienții potențiali reveni vreodată enervant nod „low-viteză“, în cazul în care vizitatorul pentru o lungă perioadă de timp de așteptare pentru răspuns la solicitarea dvs., în cazul în care nu rămân fără răspuns. De aceea, atunci când planificați infrastructura site-urilor web în orice organizație, trebuie acordată o atenție deosebită măsurilor de creștere a productivității.

Există mai multe modalități de a îmbunătăți performanțele site-ului: este posibil pentru a crește lățimea de bandă pentru a instala echipamente de rețea de înaltă performanță pentru a dezvolta aplicații eficiente pentru web, pentru a optimiza și a actualiza software-ul și hardware componente ale web-server precum și să adopte o tehnologie cache în mediul Web.

O altă modalitate de a spori performanța site-ului web este creșterea numărului de servere și site-uri Web și plasarea pe ele a copiilor "în oglindă" ale materialelor. În acest fel, puteți distribui sarcina totală în toate componentele sistemului și puteți reduce timpul de returnare a informațiilor atunci când serverul efectuează procesarea internă a cererilor clientului. În același timp, serverele existente sunt, de asemenea, păstrate, deoarece nu trebuie să fie eliminate din serviciu și înlocuite cu servere noi.

Nu cu mult timp în urmă, furnizorii au stabilit lansarea sistemelor de echilibrare a încărcăturii - produse software care echilibrează încărcarea, distribuind-o pe mai multe servere. În plus, ele măresc toleranța la erori a serverelor Web: în cazul unei defecțiuni, o mașină trimite pachete de date către un alt server sau un alt site. Astfel, timpul de așteptare este scurtat, iar numărul cererilor neprelucrate este redus la minimum. Sistemele de echilibrare a sarcinilor pot fi utilizate atât în ​​prezența unui singur site Web, cât și în cazul lucrului cu un număr de noduri. Ia-o idee despre ceea ce un sistem de echilibrare a sarcinii și modul în care acestea funcționează, putem determina caracteristicile lor cele mai importante care trebuie luate în considerare la alegerea unui instrument de echilibrare a sarcinii.

Ce este un sistem de echilibrare a încărcăturii?

Fig.2 Sistem de echilibrare pentru un singur amplasament.

Fig.3 Sistem de echilibrare pentru mai multe situri.

Monitorizarea stării serverului

sistem de echilibrare a sarcinii monitorizează în mod constant încărcătura și starea sa atribuit de Web-servere, astfel încât, pe baza informațiilor colectate în orice moment pentru a oferi acces client la server, care poate răspunde cel mai bine la cererea sa. Sunt utilizate două metode de monitorizare: monitorizarea externă și monitorizarea internă.

La efectuarea monitorizării externe, sistemul de echilibrare a încărcării calculează timpul de răspuns al serverului, pentru care trimite o solicitare serverului și măsoară timpul de răspuns. Cea mai simplă tehnică pentru efectuarea monitorizării externe a serverului implică utilizarea testelor ping utilizând Internet Message Control Protocol (ICMP). Aceste teste permit sistemului să se asigure că serverul este pregătit pentru funcționare și pentru a afla cât timp este nevoie pentru a transfera informații de la server la sistemul de echilibrare și înapoi. Dacă balancerul de încărcare nu primește un răspuns de la server după mai multe solicitări consecutive, se consideră că serverul nu este disponibil. De obicei, administratorii de servere conectate Web direct la echilibrarea sistemului de încărcare, astfel încât în ​​cazul în care timpul necesar pentru a transfera este prea mare, sistemul ajunge la concluzia că serverul este sub sarcină grea.

Aici, totuși, trebuie remarcat faptul că în timpul testelor de ping ale serverului care utilizează protocolul ICMP este diagnosticată doar stiva de protocol IP; Metoda descrisă nu oferă o idee despre starea stivei TCP care este utilizată de protocolul de transfer de hypertext HTTP. Pentru a asigura funcționarea corectă a stiva TCP al serverului, sarcină încearcă să echilibrist stabili o conexiune TCP, care este necesar pentru a efectua un mesaj de confirmare de schimb în trei etape. Acest lucru se face astfel. În primul rând, sarcina de mijloace de echilibrare trimite serverul TCP-pachetul în care valoarea bitului SYN este setat la 1. În cazul în care, după acest sistem de echilibrare primește de la serverul TCP-pachete în care valoarea bitului SYN este 1, iar valoarea de biți ACK, de asemenea, setat la 1, acesta trimite al doilea TCP server-pachet cu o valoare de biți SYN egal cu 0 și valoarea bitul ACK la 1. Dacă mesajul de confirmare de schimb a fost finalizat cu succes, atunci serverul TCP-stiva funcționează corect. La terminarea unui astfel de schimb, balancerul de sarcină deconectează imediat conexiunea la server pentru a preveni utilizarea neproductivă a resurselor sale. Calitatea conexiunii TCP la server este estimată de sistem pentru un astfel de indicator ca timpul necesar pentru a efectua toate cele trei etape de schimb de mesaje de confirmare.

Cu toate acestea, în ciuda faptului că monitorizarea externă permite obținerea de informații utile despre server, aceasta are dezavantajele sale ca metodă de diagnosticare. O astfel de performanță semnificativă de server, ca starea de CPU, memorie, magistrala de sistem, I / O autobuz, NIC, precum și o serie de resurse importante de sistem și administrator al aplicației are doar informații fragmentare sau deloc. Numai monitorizarea internă poate oferi informații detaliate despre încărcarea serverului. Pentru implementarea acestuia în sistemul de încărcare a încărcăturii, sunt furnizate agenți de monitorizare interni speciali, care sunt instalate pe fiecare server. Agentul monitorizează constant statutul "habitatului" său și îl informează despre instrumentul de echilibrare. Mulți furnizori oferă instrumente de scripting care permit administratorilor să creeze utilități interne de monitorizare pentru aplicațiile Web. Monitorizarea internă este utilizată pe scară largă în sistemele de echilibrare a software-ului, însă această metodă de diagnosticare este rareori implementată în dispozitivele hardware și în soluțiile bazate pe switch-uri.

Selectați un server

Pe baza informațiilor obținute în timpul sistemului extern și intern de echilibrare servere de monitorizare a sarcinii poate aloca de server, care este mai în măsură să facă față cu prelucrarea altor cereri clientului. În cazul în care performanța componentelor hardware și software ale unui bazin de servere echivalente, puteți configura balancer de încărcare, astfel încât să alocat server pentru a procesa următoarea cerere, pe baza unei liste circulare, ținând cont de starea serverului. Dar dacă sistemul de echilibrare funcționează ca un server cu un procesor Pentium III, și o altă mașină pe care Pro procesor Pentium, este posibil să se adapteze sistemul să funcționeze într-un mod diferit: servere mai puternice se vor acumula în numărul tot mai mare de cereri. Cu alte cuvinte, vorbim despre același principiu al unei liste circulare, luând în considerare numai coeficienții de greutate.

Sistemele moderne de echilibrare a încărcăturii permit administratorului să determine regulile de selectare a serverului la discreția sa. Este posibil, de exemplu, să includă în aceste norme, criterii cum ar fi rata de utilizare a procesorului și a memoriei, numărul de conexiuni TCP deschise și numărul de pachete care sosesc la placa de interfață de rețea a unui anumit server. Formula pentru echilibrarea sistemului determină nivelul serverelor de congestionare poate arata astfel: (10 * nivelul de utilizare a procesorului) + (nivelul 3 * de utilizare a memoriei) + (6 * numărul de deschise TCP-conexiuni) + (3 * numărul de pachete transmise) = încărcare server. La primirea unei solicitări din partea clientului sistemul de echilibrare a sarcinii calculează de la această formulă fiecare sarcină server și transmite cererea către serverul cu încărcarea cea mai redusă.

Articole similare