Ko je strežnik preobremenjen, ne glede na to, ali je navidezen ali namenski, povzroči, da se spletna mesta nalagajo počasi in namesto vsebine proizvajajo dražljive napake. Treba je skrbno spremljati njegove parametre in opraviti pravočasno analizo virov, da bi se izognili takšnemu izidu,
Nato si bomo ogledali diagnosticiranje posameznih virov z orodji ponudnika gostovanja, pa tudi prek terminala na strani strežnika. Poleg tega bomo obravnavali različne pristope k reševanju težav, povezanih s slabim delovanjem sistema. Navodila veljajo za vse strežnike z operacijskim sistemom Linux OS, ne glede na predhodno nameščeno programsko opremo.
Preverjanje virov strežnika prek VMmanager
Orodje za virtualizacijo VMmanager je najpreprostejša, a hkrati univerzalna rešitev za diagnostiko. Igra ključno vlogo pri zagotavljanju učinkovitega upravljanja namenskih ali virtualnih strežnikov pri večini sodobnih ponudnikov gostovanja. Kot primer bo pregled izveden na različici 6 orodja, vendar lahko tudi prejšnje različice izvajajo podobno diagnostiko.
Za analizo morate iti na nadzorno ploščo VMmanager in izbrati želeni virtualni stroj:
Nato lahko uporabnik takoj vidi porabo virov v realnem času. Za podrobnejšo statistiko morate izbrati "Parametri":
Zavihek s podrobno statistiko na vrhu prikazuje splošne značilnosti strežnika in vrsto virtualizacije. Na grafih si lahko ogledate prezasedenost omrežja, obremenitev procesorja, porabo RAM-a in prostora na disku v realnem času:
Za podrobnejšo analizo statistike diskovnega prostora ali virov za določeno časovno obdobje morate izbrati ustrezen menijski element. Informacije o virtualnih diskih so prikazane v tej obliki:
Statistika obremenitve za določen vir je prikazana v obliki priročnega grafa:
Možno je prikazati graf obremenitve za dan, teden, mesec, leto ali ročno izbrati potrebne datume. Prikazani so vsi glavni viri: procesor, RAM, pomnilnik, omrežni vmesnik.
Mnogi uporabniki pričakujejo, da bodo viri v določenem obdobju enakomerno porabljeni. Vendar ni vedno tako. Na primer, omrežni vmesnik je lahko podoben tudi v stanju mirovanja:
V tem primeru ukrepi niso potrebni. Vendar pa v primeru procesorja, RAM-a ali diskovnega pomnilnika strežnik ne bi smel stalno uporabljati vseh 100 % svojih virov; priporočena obremenitev ni večja od 70%.
Preverjanje virov strežnika v terminalu
Analiza skupne obremenitve
Nekaj možnosti analize smo si že ogledali v članku Splošna diagnostika strežniških virov . Tam smo govorili o standardnih orodjih, kot je top/atop , in si ogledali tudi namestitev in konfiguracijo pripomočka Netdata , ki nam omogoča spremljanje strežniških virov prek brskalnika. V tem članku si bomo ogledali htop kot alternativo pripomočku top za splošno analizo sistemskih virov.
Orodje ni privzeto vnaprej nameščeno v distribucijah Linuxa, zato začnimo z namestitvijo. Za Debian/Ubuntu uporabimo ukaz:
apt-get install htop
Za CentOS je bolj smiselno uporabiti repozitorije EPEL . Privzeto so onemogočeni, zato je prvi ukaz odgovoren za njihovo dodajanje, drugi pa za namestitev htop :
yum -y install epel-release
yum install htop -y
Takoj po namestitvi lahko odprete pripomoček v meniju aplikacije ali v terminalu z ustreznim ukazom:
htop
Posledično bo uporabnik lahko videl vse informacije o sistemu:
V zgornjem levem kotu so prikazani podatki procesorja, vključno z uporabo vsakega jedra, RAM-a in izmenjevalnega pomnilnika. Zamenljivi pomnilnik v Linuxu se uporablja v primerih pomanjkanja RAM-a, kar zagotavlja stabilnost sistema. V zgornjem desnem kotu lahko vidite obremenitev procesorja in število aktivnih nalog. Osrednji del prikazuje aktivne procese z možnostjo sortiranja. Spodnji del vsebuje informacije o vročih tipkah in funkcionalnosti. V razdelku »Pomoč« je podroben opis zmožnosti programa:
Preden se lotimo diagnosticiranja sistema, je treba natančno razumeti, koliko jeder/procesorjev se uporablja na strežniku. Uporabnik lahko njihovo vrednost preveri v zgornjem levem kotu pripomočka htop :
Ali z izvajanjem ukaza:
nproc
Glede na dobljeno vrednost se izračuna dovoljena skupna obremenitev (povprečna obremenitev v zgornjem desnem kotu). V našem primeru je enako 2, kar pomeni, da je največja obremenitev 2.0. Vendar to ne pomeni, da bo sistem popolnoma zamrznil pod obremenitvijo 2.0. Ta številka je lahko višja, vendar bodo v tem primeru vsa druga opravila v čakalni vrsti, sam strežnik pa bo naložen. Idealna vrednost se šteje za obremenitev, ki ne presega 70%. Na primer, povprečje obremenitve mora biti znotraj 0.7 na enoprocesorskem strežniku. V primeru strežnika v zgoraj omenjenem primeru bi bil dober indikator vrednosti, ki niso višje od 1.4.
Z uporabo programa htop ali njegovih analogov mora uporabnik oceniti glavne vire: povprečno obremenitev procesorja, porabo RAM-a, prostor na disku in omrežni vmesnik. Če so viri minimalni, je treba procese razvrstiti po uporabi procesorja, prepoznati operacije, ki porabijo veliko energije, in jih nato optimizirati ali prekiniti. Če programa ni mogoče zapreti ali optimizacija ne uspe, je priporočljivo razmisliti o prehodu na strežnik z zmogljivejšo konfiguracijo.
Preverjanje prostega RAM-a
V tem razdelku si bomo podrobneje ogledali pomemben vidik delovanja katerega koli strežnika - zadostno raven prostega RAM-a.
Najlažji način za preverjanje prostega RAM-a v katerem koli sistemu Linux prek terminala je ukaz:
free -m
Na izhodu dobimo naslednje podatke v megabajtih: skupni, uporabljeni, prosti in predpomnjeni RAM ter obseg zamenjave:
Orodje je uporabno za pridobivanje splošnih podatkov v določenem trenutku. Za diagnostiko dinamične uporabe RAM-a priporočamo pripomoček vmstat , ki nam omogoča konfiguracijo pogostosti posodabljanja izhodnih informacij:
vmstat 1
V zgornjem primeru se bodo podatki posodabljali vsako sekundo. Izhod je v obliki, podobni formatu free :
Orodje zagotavlja tudi splošne sistemske informacije, vendar so v našem primeru pomembni le stolpci, ki so odgovorni za RAM, to je pomnilnik in zamenjava. Vse vrednosti so navedene v kilobajtih. Oglejmo si jih podrobneje:
Pomnilnik (RAM):
- swpd: navidezni pomnilnik zamenjan s fizičnim.
- brezplačno: razpoložljivi fizični pomnilnik (RAM).
- buff: pomnilnik, ki se uporablja kot medpomnilnik pred pisanjem na disk.
- predpomnilnik: pomnilnik, ki se uporablja kot predpomnilnik za pospešitev dostopa.
Swap
- si: pomnilnik, ki se uporablja kot predpomnilnik za pospešitev dostopa.
- so: podatki, zapisani iz fizičnega pomnilnika v izmenjevalni pomnilnik.
Ločeno je treba omeniti dejstvo, da vsi pripomočki za diagnosticiranje sistemskih virov na začetku vzamejo podatke iz dnevnikov. V primeru RAM-a si bo uporabnik lahko podatke ogledal neposredno tako, da odpre ustrezno datoteko:
cat /proc/meminfo
Rezultat je precej obsežen, vendar je dovolj, da smo pozorni na prve zapise za analizo pomnilnika:
Težave s prekomerno porabo RAM-a so največkrat povezane z določeno nalogo ali procesom. Na začetku bo diagnostika z uporabo običajnih orodij za prepoznavanje problematičnih procesov dovolj. Kot rešitev lahko razmislite o optimizaciji določene aplikacije, omogočanju predpomnjenja in stiskanja podatkov, če govorimo o velikih količinah informacij, ali povečanju konfiguracije strežnika.
Nadzor prostora na disku
Diagnostika prostora na disku strežnika ni nič manj pomembna od njegovih drugih virov. Praviloma so signali o potrebi po preverjanju: nezmožnost ustvarjanja ali pisanja v obstoječe datoteke, počasno delovanje sistema in različne vhodno/izhodne napake.
Najbolj priročen način preverjanja je ukaz:
df -h
V odgovor bo orodje prikazalo informacije o vseh nameščenih diskovnih particijah:
Ta ukaz lahko uporabite za podrobnejše spremljanje imenikov:
du -hs /*
Tako bo uporabnik lahko ugotovil, koliko prostora zaseda posamezni imenik. Če želite obnoviti delovanje sistema, boste morali optimizirati particijo diska, ki porabi največ pomnilnika. Priporočljivo je, da ne dovolite več kot 80-90% prostega prostora celotne količine; preostalih 10-20% bi moralo zadostovati za stabilno delovanje sistema. Če optimizacija ni mogoča, je priporočljivo povečati prostor na disku. To je mogoče izvesti z dodajanjem novih ali razširitvijo obstoječih diskov, kot tudi z uporabo shranjevanja v oblaku. Ne glede na izbrano rešitev je priporočljivo, da vedno naredite varnostno kopijo, da preprečite izgubo datoteke.
Preverjanje omrežnega vmesnika
Zadnji, a nič manj pomemben vidik diagnostike strežnika je preverjanje omrežnega vmesnika. The netogi pripomoček lahko uporabite, če želite pridobiti splošne informacije o tem, koliko prometa predstavljajo omrežni procesi v realnem času.
Namestitev in zagon na Cent OS:
yum install nethogs
nethogs
Za Debian/Ubuntu:
apt-get install nethogs
nethogs
Orodje bo prikazalo tiste procese, ki trenutno uporabljajo omrežne vire:
Priporočamo uporabo iftop za podrobnejšo analizo.
Namestitev in zagon na Cent OS:
yum install iftop
iftop
Za Debian/Ubuntu:
apt-get install iftop
iftop
Izhod programa je seznam aktivnih povezav, ki označuje naslove IP, vrata, količino prenesenih podatkov in hitrost prenosa. Glavna prednost programa je vizualna zasnova nalaganja omrežnega kanala:
Po diagnostiki strežniškega omrežnega kanala in prepoznavanju težav z visoko obremenitvijo je priporočljivo povečati pasovno širino omrežnih povezav na strani ponudnika gostovanja ali optimizirati nastavitve specifičnega problematičnega vmesnika. Kot rezervno orodje lahko uporabite različne nadzorne sisteme za hitro sledenje spremembam v omrežni aktivnosti in po potrebi redno posodabljanje omrežne infrastrukture v skladu z zahtevami.
zaključek
Skratka, lahko poudarimo, da je diagnosticiranje strežniških virov sestavni del učinkovitega upravljanja virtualnih in namenskih strežnikov. Članek nam je omogočil, da si ogledamo glavna orodja za celovito analizo strežnika, in podal tudi praktična priporočila za odpravljanje morebitnih težav. Redna diagnostika sistema omogoča nemoteno delovanje strežnika, tudi brez aktivnega sodelovanja uporabnika.