cum și de ce să monitorizez utilizarea procesorului serverului
când folosesc orice aplicație, vreau să fie rapid. Aplicațiile rapide mă fac fericit. Și sunt sigur că e la fel cu toată lumea. Dacă dețineți orice aplicație care funcționează cu Internetul, este esențial să vă concentrați asupra performanței serverului. Există o mulțime de lucruri de care trebuie să aveți grijă pentru a avea un server performant. Dar pentru a îmbunătăți ceva, trebuie să știți unde se află în primul rând. Prin urmare, monitorizarea serverului dvs. este primul pas pentru creșterea performanței serverului.
când vorbim despre ce să monitorizăm pentru a înțelege performanța unui server, există multe valori care ar putea apărea. Ne vom concentra doar pe unul în acest post: utilizarea procesorului serverului. Vom începe prin a explica ce este utilizarea procesorului serverului și apoi vom discuta de ce și cum să îl monitorizăm.
ce înseamnă utilizarea procesorului serverului?
tot ce se întâmplă pe server este o sarcină pentru sistem. Această sarcină se descompune la procesele care sunt executate de server. Procesele pot fi de diferite complexități și diferă în ceea ce privește cât de repede pot fi finalizate. Și pe baza acestui lucru, procesorul durează ceva timp pentru a executa procesul. Cu alte cuvinte, procesorul este utilizat pentru a executa procesul. Utilizarea procesorului este procentul de timp în care procesorul este utilizat pentru a-și finaliza sarcinile.
când sistemul dvs. este în funcțiune, un procesor poate fi în trei stări: inactiv, ocupat sau în așteptare pentru I/O.
inactiv
când procesorul este în stare inactivă, procesorul nu face nimic. Așteaptă doar să i se atribuie o sarcină. Este foarte puțin probabil să vedeți un procesor în stare inactivă dacă aveți un singur sistem de procesor. Chiar dacă nu executați nicio aplicație sau nu faceți nimic, CPU-ul va fi folosit pentru a executa sarcini ale sistemului de operare. Dar dacă sistemul dvs. are mai multe procesoare, puteți vedea unul sau unele dintre ele inactiv. Acest lucru se poate datora faptului că sunt utilizate doar unul sau câteva procesoare, iar celelalte nu au nimic de făcut.
ocupat
opusul stării inactiv este starea ocupat, care este atunci când CPU este utilizat pentru a executa un proces. Un procesor este responsabil pentru diferite tipuri de sarcini. În timpul procesului de executare a sarcinilor, un procesor face patru lucruri:
- Fetch: instrucțiunile pentru a finaliza sarcina sunt stocate în memorie. CPU trebuie să obțină aceste instrucțiuni din memorie pentru a înțelege ce să facă.
- Decode: instrucțiunile pentru CPU pot fi în diferite formate, cum ar fi un program. De exemplu, să presupunem că ați scris un program în C, Java sau Python. Procesoarele nu pot înțelege direct aceste limbaje de codificare. Trebuie să o decodeze într-o formă pe care să o poată înțelege.
- executa: Acest lucru este atunci când CPU este de fapt face sarcina.
- stocare: odată ce CPU-ul finalizează sarcina, trebuie să ofere feedback despre sarcină. Rezultatele după executarea sarcinii sunt stocate în memorie.
operații I/O
aceasta este starea în care procesorul nu este complet inactiv, dar nici nu este ocupat. În timpul executării unui proces, un procesor ar putea avea la ieșire unele date la o altă componentă sau proces. Sau CPU ar putea să aștepte pentru a obține date de la un alt proces sau componentă. În acest caz, așteaptă ca operația I/O să fie completă, astfel încât să își poată relua executarea sarcinii.
utilizarea procesorului este măsura procesorului atunci când este într-o stare non-inactiv. Deși utilizarea procesorului este măsurată în procente, puteți vedea că valorile de utilizare a procesorului sunt mai mari de 100%. Acest lucru nu înseamnă că procesorul este supraîncărcat. De exemplu, veți vedea utilizarea procesorului mai mare de 100% în sistemele multiprocesor. Valoarea utilizării procesorului pentru un sistem este suma procentului de utilizare a procesorului de procesoare individuale. Deci, dacă aveți două procesoare și unul dintre ele are o utilizare a procesorului de 60%, iar celălalt are o utilizare a procesorului de 50%, valoarea totală a utilizării procesorului ar fi de 110%.
ce cauzează utilizarea ridicată a procesorului?
găsirea nucleului problemei vă ajută să implementați soluții mai bune pentru utilizarea ridicată a procesorului. Pot exista diverse motive pentru utilizarea Procesorului pe baza cazurilor de utilizare. Enumerăm cele mai frecvente cauze.
procese cu cerințe CPU ridicate
unele programe necesită resurse CPU ridicate. Dacă aveți un sistem cu specificații reduse și încercați să rulați un joc video high-end, evident, utilizarea procesorului va trece prin acoperiș. În mod similar, pot exista diferite procese care necesită resurse CPU ridicate pentru a funcționa. Astfel de procese sau o serie de procese care, ca subtotal, utilizează CPU ridicat pot fi una dintre cauze. Pe servere, care rulează mai multe servicii pentru a menține serverul de funcționare, simulări, etc., poate provoca o utilizare ridicată a procesorului.
procesele de fundal
procesele pot fi împărțite în principal în 2 categorii: procese de sistem și procese de aplicație. Procesele de sistem sunt procesele care sunt necesare pentru a menține sistemul în funcțiune. Procesele de aplicare sunt procesele pe care le-ați folosi pentru un anumit scop. Când aceste procese continuă să ruleze în fundal, consumă resurse CPU.
o mulțime de procese de aplicație continuă să ruleze în fundal chiar și după ce închideți fereastra aplicației. Acest lucru este mai puțin probabil să se întâmple pe un server, deoarece un server este de obicei întreținut și curățat periodic pentru a avea doar procesele de care are nevoie, dar este încă posibil.
Malware
Malware (software rău intenționat) sunt programe utilizate de actori rău intenționați pentru a vă ataca sistemul sau pentru a efectua acțiuni nelegitime asupra sistemului dvs. Inițial, malware-ul nu utilizează resurse CPU mari pentru a rămâne ascuns, dar atunci când încep să efectueze acțiuni rău intenționate, acestea provoacă o utilizare ridicată a procesorului. Am asistat la acest incident în care malware-ul a fost indus într-un server cu o săptămână înainte și într-o zi a început să transfere toate datele sensibile de pe server în spațiul de stocare în cloud. Deci, acest malware nu a folosit prea multe resurse CPU în timp ce configura lucruri și găsea date critice. Dar, odată ce a găsit tot ce avea nevoie, a existat o creștere uriașă a utilizării procesorului datorită transferului de date.
Cod neoptimizat
este obișnuit ca codul personalizat să ruleze pe servere pentru sarcini specifice. Dacă astfel de coduri nu sunt optimizate, acestea ar putea ajunge să utilizeze o mulțime de resurse CPU. Buclele neoptimizate și recursivitatea sunt unele dintre cele mai frecvente cauze ale utilizării ridicate a procesorului datorită codului neoptimizat.
corecții comune pentru utilizarea procesorului de mare
pe baza cauzelor comune abordate anterior, să ne uităm la unele dintre corecțiile comune pentru utilizarea procesorului de mare.
Restart
o repornire a sistemului este o soluție pentru majoritatea problemelor computerului. Cum ar ajuta acest lucru la reducerea utilizării procesorului? O repornire ar închide toate procesele de fundal care ar fi putut începe din cauza unei acțiuni, dar nu mai aveți nevoie de ea. De asemenea, ar încheia procesele zombie sau alte procese care rulează pe termen nelimitat din cauza unei defecțiuni. Deci, repornirea sistemului dvs. ar curăța toate (cel puțin majoritatea) proceselor inutile și ar reduce utilizarea procesorului.
End Background Processes
repornirea sistemului ar putea să nu fie fezabilă în special pentru servere. Deci, va trebui să gestionați procesele inutile fără a reporni sistemul. Pentru a face acest lucru, puteți lista toate procesele care rulează, puteți identifica procesele care nu sunt necesare și le puteți încheia. Acesta este modul în care ar arăta în Windows task manager:
o altă soluție este de a face față proceselor de pornire. Există câteva procese care sunt configurate să înceapă imediat ce sistemul dvs. pornește. Unele dintre acestea sunt necesare, iar altele nu. Puteți identifica astfel de procese și le puteți dezactiva de la pornire automată. În windows, le puteți găsi în fila „Startup” din Managerul de activități:
Anti-Malware
Malware-ul este periculos. Nu doar în ceea ce privește utilizarea procesorului, ci și în general. Unele programe malware provoacă o utilizare ridicată a procesorului și utilizarea anti-malware ar putea fi cea mai bună apărare împotriva acestor programe malware. Software-ul anti-malware Modern este inteligent și avansat. Acestea nu numai că pot identifica malware-ul din sistemul dvs. și le pot șterge sau pune în carantină, dar pot preveni, de asemenea, intrarea malware-ului în sistemul dvs. Deci, folosind anti-malware, nu numai că veți remedia utilizarea ridicată a procesorului, dar veți preveni și utilizarea ridicată a procesorului din cauza malware-ului.
optimizarea codului
dacă identificați că motivul utilizării ridicate a procesorului se datorează codului neoptimizat, atunci trebuie să îl optimizați. Va trebui să analizați codul și să aflați ce parte a codului consumă resurse CPU și să îl optimizați.
upgrade CPU
dacă ați rezolvat toate celelalte probleme și ați optimizat totul și vedeți în continuare utilizarea procesorului ridicat, înseamnă că cerința procesorului dvs. este ridicată. În astfel de cazuri, nu există altă opțiune decât să vă actualizați resursele CPU.
de ce ar trebui să monitorizați utilizarea procesorului serverului?
un server poate avea două tipuri de joburi de finalizat la un nivel înalt: un job de la utilizator și un job din sistem. Un loc de muncă de la utilizator este atunci când un utilizator a solicitat un serviciu sau date de la server. Să presupunem că mergeți la YouTube și căutați ceva. Serverul YouTube trebuie să preia toate videoclipurile relevante pentru căutarea dvs. și să le trimită ca răspuns la solicitarea dvs. Această tranzacție de date utilizează timpul procesorului.
un server are alte sarcini decât să răspundă utilizatorilor. Este de la sine înțeles că CPU-ul său este utilizat pentru a rula sistemul de operare și serviciile web. Dar, în afară de aceasta, serverele pot fi folosite pentru a rula unele scripturi pentru a procesa date. Un exemplu comun este rularea cărților de joc Ansible. Aceste playbooks pot executa sarcini chiar și fără ca utilizatorul să fie nevoit să intervină.
gestionarea resurselor și a sarcinilor
dacă utilizarea procesorului dvs. este scăzută, atunci vă pierdeți resursele. Și dacă utilizarea procesorului dvs. este foarte mare, sistemul încetinește și ar putea începe să rămână în urmă. Nu doriți ca niciunul dintre acestea să se întâmple, motiv pentru care este important să monitorizați utilizarea procesorului serverului. Monitorizarea server CPU utilizare vă ajută să înțelegeți cât de mult CPU este utilizat. Acest lucru vă va ajuta în a decide dacă puteți face CPU face mai multe locuri de muncă sau de a crește resursele pentru a satisface necesitatea.
optimizarea programelor
monitorizarea utilizării procesorului serverului a fost foarte avantajoasă pentru gestionarea resurselor, precum și pentru optimizarea sarcinilor. Au existat cazuri în care programele să ia mai mult timp decât în mod ideal ar trebui să fie luați. Când vedeți că utilizarea procesorului este mai mare chiar și în timp ce executați un program scurt și simplu, știți că este ceva în neregulă cu programul dvs. Adesea, programele nu sunt eficiente din cauza practicii slabe de programare. Monitorizarea utilizării procesorului vă poate ajuta să găsiți astfel de instanțe și să optimizați codul. Prin urmare, monitorizarea utilizării procesorului este ca lovirea a două păsări cu o singură piatră.
acum că am terminat cu „ce” și „de ce” de utilizare a procesorului și a învățat cât de benefică poate fi utilizarea procesorului serverului de monitorizare, să trecem la Partea „cum”.
cum se monitorizează utilizarea procesorului serverului
utilizarea procesorului nu este ceva de genul banilor pe care îi puteți economisi pe o perioadă de timp și apoi îl puteți folosi atunci când doriți. CPU neutilizat este o resursă irosită. De aceea, toată lumea dorește ca utilizarea procesorului serverului să fie aproape de 100%. Și să-l păstrați la cele mai bune, s-ar putea avea de a face unele tweaking și să păstreze actualizarea sistemului. Pentru a ști ce să faceți, trebuie să cunoașteți starea curentă a utilizării procesorului serverului.
puteți verifica utilizarea procesorului serverului cu o singură comandă. Dacă aveți un sistem de operare Windows, Deschideți promptul de comandă și executați această comandă:
wmic cpu get loadpercentage
ar trebui să vedeți procentul de utilizare a procesorului așa cum se arată în această captură de ecran:
pe baza cerințelor dvs., puteți interoga periodic utilizarea procesorului și puteți stoca datele undeva, apoi le puteți privi mai târziu. Sau puteți transmite în flux utilizarea procesorului într-un tablou de bord pentru a monitoriza oricând.
majoritatea sistemelor de operare vin cu instrumente și utilitare încorporate pentru monitorizarea utilizării procesorului. Dar aceste instrumente au limitări și sunt de obicei prea elementare. În epoca actuală, avem nevoie de capacități avansate pentru a face față și a lucra la monitorizarea datelor și acest lucru necesită instrumente avansate de monitorizare. Aproape fiecare serviciu este online acum. Și serverele joacă un rol important în punerea la dispoziție a acestor servicii. Nu vă puteți permite să așteptați câteva ore pentru a ști că serverul dvs. este în jos din cauza utilizării ridicate a procesorului. Trebuie să monitorizați continuu utilizarea procesorului și alte valori ale serverului.
Monitor continuu
Verificarea utilizării procesorului serverului la un moment dat nu este de mare folos. Aveți nevoie de o soluție pentru a monitoriza continuu utilizarea procesorului serverului. Aproape fiecare sistem de Operare server vine cu un monitor de performanță unde puteți vedea utilizarea procesorului la un moment dat. Când monitorizați utilizarea procesorului serverului, ar trebui să căutați vârfuri, deoarece schimbările bruște ale utilizării procesorului au indicat că s-a întâmplat ceva ieșit din comun.
împreună cu monitorizarea utilizării procesorului în timp real, doriți să stocați aceste date, astfel încât să le puteți vizualiza și analiza la intervale diferite. Pentru a profita la maximum de statisticile de utilizare a procesorului, ar trebui să colectați date de utilizare a procesorului la intervale regulate (de preferință în timp real) prin generarea de jurnale și ar trebui să le vizualizați sub formă de grafice. Tocmai am vorbit despre o valoare, dar nu uitați că utilizarea procesorului serverului nu este singurul lucru de monitorizat. Pentru a obține tot ce aveți nevoie într-un singur loc, utilizați Scalyr.