Kuidas jälgida süsteemi kasutamist, katkestusi ja tõrkeotsingut Linuxi serverites - 9. osa


Kuigi Linux on väga usaldusväärne, peaksid targad süsteemiadministraatorid leidma viisi, kuidas kogu aeg süsteemi käitumisel ja kasutamisel silma peal hoida. Võimaluse 100% lähedase tööaja tagamine ja ressursside kättesaadavus on paljudes keskkondades kriitilise tähtsusega vajadused. Süsteemi mineviku ja praeguse seisundi uurimine võimaldab meil võimalikke probleeme ette näha ja tõenäoliselt ära hoida.

Tutvustame Linux Foundationi sertifitseerimisprogrammi

Selles artiklis tutvustame loetelu mõnest tööriistast, mis on saadaval enamikus eelvoolu jaotustes, et kontrollida süsteemi olekut, analüüsida katkestusi ja tõrkeotsingut käimasolevate probleemide korral. Täpsemalt keskendume arvukatest saadaolevatest andmetest protsessorile, salvestusruumi ja mälu kasutamisele, põhiprotsesside haldamisele ja logianalüüsile.

Salvestusruumi kasutamine

Linuxis on 2 tuntud käsku, mida kasutatakse salvestusruumi kasutamise kontrollimiseks: df ja du .

Esimest, df (mis tähistab kettavaba), kasutatakse tavaliselt kettaruumi üldkasutuse kajastamiseks failisüsteemide kaupa.

Ilma valikuteta teatab df kettaruumi kasutamise baitides. Märgistusega -h kuvab see sama teavet, kasutades MB või GB. Pange tähele, et see aruanne sisaldab ka iga failisüsteemi kogumahtu (1-K plokkidena), vaba ja saadaolevat ruumi ning iga salvestusseadme ühenduspunkti.

# df
# df -h

See on kindlasti tore - kuid on veel üks piirang, mis võib muuta failisüsteemi kasutuskõlbmatuks ja mille inoodid on otsa saamas. Kõik failisüsteemi failid on kaardistatud inode, mis sisaldab selle metaandmeid.

# df -hTi

näete kasutatud ja saadaolevate inode kogust:

Ülaltoodud pildi kohaselt on/home-is 146 kasutatud inode ( 1% ), mis tähendab, et saate selles failisüsteemis siiski luua 226K-faili.

Pange tähele, et salvestusruum võib otsa saada juba ammu enne inoodide lõppemist ja vastupidi. Sel põhjusel peate jälgima mitte ainult salvestusruumi kasutamist, vaid ka failisüsteemi poolt kasutatavate inoodide arvu.

Kasutage järgmisi käske tühjade failide või kataloogide (mis hõivavad 0B) leidmiseks, mis kasutavad põhjuseta inode.

# find  /home -type f -empty
# find  /home -type d -empty

Samuti võite iga käsu lõppu lisada lipu -delete , kui soovite ka tühjad failid ja kataloogid kustutada:

# find  /home -type f -empty --delete
# find  /home -type f -empty

Eelmine protseduur kustutas 4 faili. Kontrollime uuesti kasutatud/saadaolevate sõlmede arvu uuesti kodus/kodus:

# df -hTi | grep home

Nagu näete, on praegu inodeid kasutatud 142 (4 vähem kui varem).

Kui teatud failisüsteemi kasutamine ületab ettemääratud protsendi, võite kasutada du (lühend kettas kasutamiseks), et teada saada, millised failid kõige rohkem ruumi hõivavad.

Näide on toodud reale /var , mida, nagu näete ülaltoodud esimesel pildil, kasutatakse selle 67% juures.

# du -sch /var/*

Märkus. Selle saate vahetada mis tahes ülaltoodud alamkataloogide vahel, et teada saada, mis täpselt neis on ja kui palju üksused hõivavad. Seejärel saate selle teabe abil kustutada mõned failid, kui neid pole vaja, või vajaduse korral pikendada loogilise mahu suurust.

Loe ka

  1. 12 kasulikku käsku "" df "kettaruumi kontrollimiseks
  2. 10 kasulikku käsku „du” failide ja kataloogide kettakasutuse leidmiseks

Mälu ja protsessori kasutamine

Klassikaline tööriist Linuxis, mida kasutatakse protsessori/mälu kasutamise ja protsesside haldamise üldiseks kontrollimiseks, on htop, kuid olen leppinud tipuga, kuna see on installitud mis tahes Linuxi distributsioonis juba valmis.

Alustuseks tippige lihtsalt oma käsureale järgmine käsk ja vajutage sisestusklahvi.

# top

Uurime tüüpilist tippväljundit:

Ridades 1 kuni 5 kuvatakse järgmine teave:

1. Praegune kellaaeg (8:41:32 pm) ja tööaeg (7 tundi ja 41 minutit). Süsteemi on sisse logitud ainult üks kasutaja ja keskmine koormus vastavalt viimase 1, 5 ja 15 minuti jooksul. 0,00, 0,01 ja 0,05 näitavad, et nende ajaintervallide jooksul oli süsteem 0% ajast jõude (0,00: protsessorit ei oodanud protsessorit), seejärel koormati seda 1% võrra (0,01: keskmiselt 0,01 protsessi ootasid protsessorit) ja 5% (0,05). Kui arv on väiksem kui 0 ja väiksem arv (näiteks 0,65), oli süsteem viimase 1, 5 või 15 minuti jooksul jõude 35%, sõltuvalt sellest, kuhu ilmub 0,65.

2. Praegu töötab 121 protsessi (täielikku loendit näete punktis 6). Neist töötab ainult üks (antud juhul ülemine osa, nagu näete veerus% CPU) ja ülejäänud 120 ootavad taustal, kuid\"magavad" ja jäävad sellesse olekusse, kuni me neile helistame. Kuidas? Seda saate kontrollida, avades mysql-i viiba ja käivitades paar päringut. Märkate, kuidas töötavate protsesside arv suureneb.

Teise võimalusena võite avada veebibrauseri ja navigeerida igale lehele, mida Apache teenindab, ja saate sama tulemuse. Muidugi eeldavad need näited, et mõlemad teenused on teie serverisse installitud.

3. meid (aja töötavad muutmata prioriteediga kasutajaprotsessid), sy (aja käitamise kerneli protsessid), ni (aja muudetud prioriteediga kasutaja protsesside käitamine), wa (sisend/väljundi lõpuleviimise ootamise aeg), tere (riistvarakatkestuste hooldamiseks kulutatud aeg), si (tarkvara katkestamiseks kulutatud aeg), st (hüpervisori poolt praegusest vm-st varastatud aeg - ainult virtualiseeritud keskkondades).

4. Füüsilise mälu kasutamine.

5. vahetage ruumikasutus.

RAM-i mälu ja vahetuse kasutamise kontrollimiseks võite kasutada ka käsku tasuta .

# free

Muidugi saate sama teabe kuvamiseks inimloetaval kujul kasutada ka lüliteid -m (MB) või -g (GB):

# free -m

Mõlemal juhul peate olema teadlik asjaolust, et kernel reserveerib nii palju mälu kui võimalik ja teeb selle protsessidele kättesaadavaks, kui nad seda taotlevad. Eelkõige näitab rida „ -/+ puhvrid/vahemälu ” tegelikke väärtusi pärast selle I/O-vahemälu arvessevõtmist.

Teisisõnu, protsesside poolt kasutatav mälumaht ja muudele protsessidele saadaval olev maht (antud juhul vastavalt 232 MB ja 270 MB saadaval). Kui protsessid seda mälu vajavad, vähendab kern automaatselt sisend-/väljundvahemälu.

Loe ka : 10 kasulikku käsku "tasuta" Linuxi mälukasutuse kontrollimiseks

Protsessidest lähemalt

Meie Linuxi süsteemis töötab igal ajahetkel palju protsesse. Protsesside tähelepanelikul jälgimisel kasutame kahte tööriista: ps ja pstree .

Kasutades valikuid -e ja -f kombineerituna üheks ( -ef ), saate loetleda kõik protsessid, mis teie süsteemis praegu töötavad. Väljundi kitsendamiseks soovitud protsessi (te) saate selle väljundi teistele tööriistadele, näiteks grep (nagu on selgitatud LFCS-i seeria 1. osas):

# ps -ef | grep -i squid | grep -v grep

Ülaltoodud protsesside loendis on järgmine teave:

protsessi omanik, PID, vanem-PID (vanemprotsess), protsessori kasutamine, käsu käivitamise aeg, tty (? näitab, et see on deemon), kumuleeritud protsessori aeg ja protsessiga seotud käsk.

Kuid võib-olla pole teil kogu seda teavet vaja ja soovite näidata protsessi omanikku, käivitanud käsku, PID-d ja PPID-d ning praegu kasutatava mälu protsenti - selles järjekorras ja sortida mälukasutus kahanevas järjekorras (pange tähele, et ps on vaikimisi sorditud PID järgi).

# ps -eo user,comm,pid,ppid,%mem --sort -%mem

Kui miinusmärk% mem ees näitab sortimist kahanevas järjekorras.

Kui protsess hakkab mingil põhjusel võtma liiga palju süsteemiressursse ja see võib tõenäoliselt ohustada süsteemi üldist funktsionaalsust, peate selle peatama või peatama, edastades sellele ühe järgnevatest signaalidest, kasutades selleks programmi kill. Muud põhjused, miks te seda kaaluksite, on see, kui olete alustanud protsessi esiplaanil, kuid soovite selle peatada ja taustal jätkata.

Kui teatud protsessi tavapärane täitmine viitab sellele, et selle töötamise ajal ekraanile väljundit ei saadeta, võite selle kas taustal käivitada (lisades käsu lõppu tähise).

process_name &

või
Kui see on esiplaanil töötama hakanud, peatage see ja saatke taustaga koos

Ctrl + Z
# kill -18 PID

Pange tähele, et iga levitamine pakub tööriistu tavaliste teenuste graatsiliseks peatamiseks/käivitamiseks/taaskäivitamiseks/uuesti laadimiseks, näiteks teenus SysV-põhistes süsteemides või systemctl süsteem-põhistes süsteemides.

Kui protsess neile utiliitidele ei reageeri, võite selle vägisi tappa, saates talle signaali SIGKILL.

# ps -ef | grep apache
# kill -9 3821

Nii .. Mis juhtus/juhtub?

Kui süsteemis on olnud mingisugust katkestust (olgu see siis voolukatkestus, riistvararike, protsessi planeeritud või planeerimata katkestamine või üldse mis tahes kõrvalekalle), logitakse saidil /var/log on teie parimad sõbrad, et teha kindlaks, mis juhtus või mis võib põhjustada teie ees olevaid probleeme.

# cd /var/log

Mõned üksused jaotises /var/log on tavalised tekstifailid, teised on kataloogid ja kolmandad on pööratud (ajalooliste) logide tihendatud failid. Te soovite kontrollida neid, kelle nimes on sõna viga, kuid ka ülejäänud inspekteerimine võib olla kasulik.

Kujutage seda stsenaariumi. Teie LAN-kliendid ei saa võrguprinteritesse printida. Esimene samm selle olukorra tõrkeotsinguks on kataloog /var/log/cups ja seal olevate andmete vaatamine.

Võite kasutada käsku tail faili error_log viimase 10 rea kuvamiseks või tail -f error_log logi reaalajas kuvamiseks.

# cd /var/log/cups
# ls
# tail error_log

Ülaltoodud ekraanipilt pakub kasulikku teavet, et mõista, mis võib teie probleemi põhjustada. Pange tähele, et sammude järgimine või protsessi talitlushäire parandamine ei pruugi ikkagi üldist probleemi lahendada, kuid kui teid kasutatakse kohe algusest peale logide kontrollimiseks iga kord, kui probleem tekib (olgu see siis lokaalne või võrgupõhine), peate Olen kindlasti õigel teel.

Ehkki riistvaratõrked võivad tõrkeotsinguks osutuda keeruliseks, peaksite kontrollima dmesg ja sõnumilogisid ning grepima, kas riistvaraosaga seotud sõnad on eeldatavasti vigased.

Allolev pilt on võetud failist /var/log/messages pärast sõna vea otsimist järgmise käsu abil:

# less /var/log/messages | grep -i error

Näeme, et meil on probleeme kahe salvestusseadmega: /dev/sdb ja /dev/sdc , mis omakorda põhjustavad RAID-massiivi probleemi.

Järeldus

Selles artiklis oleme uurinud mõningaid tööriistu, mis aitavad teil alati olla kursis oma süsteemi üldise olekuga. Lisaks peate veenduma, et teie operatsioonisüsteem ja installitud paketid on värskendatud nende uusimatele stabiilsetele versioonidele. Ja ärge kunagi unustage palke kontrollida! Siis olete õiges suunas, et leida kõikidele küsimustele lõplik lahendus.

Jätke julgesti oma kommentaarid, ettepanekud või küsimused - kui teil on -, kasutades allolevat vormi.