Kā uzraudzīt sistēmas lietošanu, pārtraukumus un Linux serveru problēmu novēršanu - 9. daļa


Lai gan Linux ir ļoti uzticams, gudriem sistēmas administratoriem vajadzētu atrast veidu, kā visu laiku sekot sistēmas uzvedībai un lietošanai. Nodrošināt pēc iespējas tuvāku 100% darbības laiku un resursu pieejamību ir kritiskas vajadzības daudzās vidēs. Sistēmas pagātnes un pašreizējā stāvokļa pārbaude ļaus mums paredzēt un, visticamāk, novērst iespējamās problēmas.

Iepazīstinām ar Linux Foundation sertifikācijas programmu

Šajā rakstā mēs sniegsim sarakstu ar dažiem rīkiem, kas ir pieejami lielākajā daļā iepriekšējā posma izplatīšanas, lai pārbaudītu sistēmas statusu, analizētu pārtraukumus un novērstu notiekošās problēmas. Konkrēti, no neskaitāmajiem pieejamajiem datiem mēs koncentrēsimies uz procesoru, atmiņas un atmiņas izmantošanu, pamata procesu pārvaldību un žurnālu analīzi.

Krātuves izmantošana

Linux ir 2 labi zināmas komandas, kuras tiek izmantotas, lai pārbaudītu krātuves izmantojumu: df un du .

Pirmais, df (kas apzīmē bez diska), parasti tiek izmantots, lai ziņotu par kopējo diska vietas izmantošanu pēc failu sistēmas.

Bez opcijām df ziņo par diska vietas izmantošanu baitos. Izmantojot karogu -h , tā vietā parādīs to pašu informāciju, izmantojot MB vai GB. Ņemiet vērā, ka šajā pārskatā ir iekļauts arī katras failu sistēmas kopējais lielums (1-K blokos), brīvās un pieejamās vietas un katras atmiņas ierīces stiprinājuma punkts.

# df
# df -h

Tas noteikti ir jauki, taču ir vēl viens ierobežojums, kas failu sistēmu var padarīt neizmantojamu, un tajā pietrūkst inodu. Visi failu sistēmas faili tiek kartēti ar inodu, kas satur tā metadatus.

# df -hTi

jūs varat redzēt izmantoto un pieejamo inodu daudzumu:

Saskaņā ar iepriekš minēto attēlu/home ir 146 izmantoti inodi ( 1% ), kas nozīmē, ka šajā failu sistēmā joprojām varat izveidot 226K failus.

Ņemiet vērā, ka krātuvē var pietrūkt ilgu laiku pirms inodu trūkuma un otrādi. Šī iemesla dēļ jums jāuzrauga ne tikai krātuves izmantošana, bet arī failu sistēmas izmantoto inodu skaits.

Izmantojiet šīs komandas, lai atrastu tukšus failus vai direktorijus (kas aizņem 0B), kuri bez iemesla izmanto inodus:

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

Katras komandas beigās varat pievienot arī karogu -delete , ja vēlaties arī izdzēst šos tukšos failus un direktorijus:

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

Iepriekšējā procedūra izdzēsa 4 failus. Vēlreiz pārbaudīsim izmantoto/pieejamo mezglu skaitu iekš/home:

# df -hTi | grep home

Kā redzat, tagad ir izmantotas 142 inodes (par 4 mazāk nekā iepriekš).

Ja noteiktas failu sistēmas izmantošana pārsniedz iepriekš noteiktu procentuālo daļu, varat izmantot du (saīsne par diska lietojumu), lai uzzinātu, kuri faili aizņem visvairāk vietas.

Piemērs ir dots /var , kas, kā redzat pirmajā attēlā iepriekš, tiek izmantots ar 67%.

# du -sch /var/*

Piezīme. Varat pārslēgties uz jebkuru no iepriekš minētajiem apakšdirektorijiem, lai precīzi uzzinātu, kas tajos atrodas un cik katrs objekts aizņem. Pēc tam šo informāciju varat izmantot, lai izdzēstu dažus failus, ja tie nav nepieciešami, vai, ja nepieciešams, palieliniet loģiskā apjoma lielumu.

Lasīt arī

  1. 12 noderīgas komandas “df”, lai pārbaudītu diska vietu
  2. 10 noderīgas komandas du, lai atrastu failu un direktoriju diska lietojumu

Atmiņas un CPU izmantošana

Klasiskais Linux rīks, ko izmanto, lai veiktu CPU/atmiņas izmantošanas un procesa pārvaldības vispārēju pārbaudi, ir htop, taču es esmu izlēmis par labāko, jo tas ir instalēts ārpus kastes jebkurā Linux izplatīšanā.

Lai sāktu augšpusē, vienkārši komandrindā ierakstiet šo komandu un nospiediet taustiņu Enter.

# top

Apskatīsim tipisku augšējo rezultātu:

No 1. līdz 5. rindai tiek parādīta šāda informācija:

1. Pašreizējais laiks (8:41:32 pm) un darbspējas laiks (7 stundas un 41 minūtes). Sistēmā ir pieteicies tikai viens lietotājs un vidējā slodze attiecīgi pēdējās 1, 5 un 15 minūtēs. 0,00, 0,01 un 0,05 norāda, ka šajos laika intervālos sistēma 0% laika bija dīkstāvē (0,00: CPU negaidīja procesi), pēc tam to pārslogoja par 1% (0,01: vidēji 0,01 procesi gaidīja CPU) un 5% (0,05). Ja mazāks par 0 un mazāks skaitlis (piemēram, 0,65), sistēma pēdējo 1, 5 vai 15 minūšu laikā nedarbojās par 35%, atkarībā no tā, kur parādās 0,65.

2. Pašlaik darbojas 121 process (pilnu sarakstu varat skatīt 6). Tikai viens no tiem darbojas (šajā gadījumā augšpusē, kā redzat kolonnā% CPU), bet atlikušie 120 gaida fonā, bet “guļ” un paliks tādā stāvoklī, līdz mēs viņus izsauksim. Kā? To var pārbaudīt, atverot mysql uzvedni un izpildot pāris vaicājumus. Jūs pamanīsit, kā palielinās darbojošos procesu skaits.

Alternatīvi, jūs varat atvērt tīmekļa pārlūkprogrammu un pāriet uz jebkuru lapu, kuru apkalpo Apache, un jūs saņemsiet tādu pašu rezultātu. Protams, šajos piemēros tiek pieņemts, ka abi pakalpojumi ir instalēti jūsu serverī.

3. mums (laika skriešanas lietotāja procesi ar nemodificētu prioritāti), sy (laika skriešanas kodola procesi), ni (laiks, kurā darbojas lietotāja procesi ar modificētu prioritāti), wa (laiks, kas gaida I/O pabeigšanu), hi (laiks, kas pavadīts aparatūras traucējumu apkalpošanai), si (laiks, kas pavadīts programmatūras pārtraukumiem), st (laiks, ko hipervizors nozaga no pašreizējā vm - tikai virtualizētās vidēs).

4. Fiziskās atmiņas izmantošana.

5. Apmainiet vietas lietojumu.

Lai pārbaudītu RAM atmiņu un apmainītu lietojumu, varat izmantot arī komandu bezmaksas .

# free

Protams, jūs varat arī izmantot slēdžus -m (MB) vai -g (GB), lai parādītu to pašu informāciju cilvēkiem lasāmā formā:

# free -m

Jebkurā gadījumā jums jāapzinās fakts, ka kodols rezervē pēc iespējas vairāk atmiņas un padara to pieejamu procesiem, kad viņi to pieprasa. Jo īpaši rindā “ -/+ buferi/kešatmiņa ” tiek parādītas faktiskās vērtības pēc šīs I/O kešatmiņas ņemšanas vērā.

Citiem vārdiem sakot, atmiņas apjoms, ko izmanto procesi, un pieejamais apjoms citiem procesiem (šajā gadījumā attiecīgi 232 MB izmantoti un 270 MB pieejami). Kad procesiem ir nepieciešama šī atmiņa, kodols automātiski samazinās I/O kešatmiņas lielumu.

Lasīt arī : 10 noderīga komanda "bezmaksas", lai pārbaudītu Linux atmiņas lietojumu

Rūpīgāk aplūkojot procesus

Jebkurā brīdī mūsu Linux sistēmā darbojas daudzi procesi. Ir divi rīki, kurus mēs izmantosim, lai rūpīgi uzraudzītu procesus: ps un pstree .

Izmantojot opcijas -e un -f , kas apvienotas vienā ( -ef ), varat uzskaitīt visus procesus, kas pašlaik darbojas jūsu sistēmā. Lai sašaurinātu izvadi līdz vēlamajam (-iem) procesam (-iem), varat izvada šo izvadi citiem rīkiem, piemēram, grep (kā paskaidrots LFCS sērijas 1. daļā):

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

Iepriekš norādītajā procesu sarakstā ir šāda informācija:

procesa īpašnieks, PID, vecāku PID (vecāku process), procesora izmantošana, komandas palaišanas laiks, tty (? norāda, ka tas ir dēmons), kopējais CPU laiks un ar procesu saistītā komanda.

Tomēr, iespējams, jums nav nepieciešama visa šī informācija, un jūs vēlaties parādīt procesa īpašniekam, komandai, kas to sāka, tā PID un PPID, kā arī pašreiz izmantotās atmiņas procentuālo daudzumu - šādā secībā un kārtot pēc atmiņas izmantošana dilstošā secībā (ņemiet vērā, ka ps pēc noklusējuma ir sakārtots pēc PID).

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

Vieta, kur mīnus zīme priekšā% mem norāda šķirošanu dilstošā secībā.

Ja kāda iemesla dēļ process sāk aizņemt pārāk daudz sistēmas resursu un tas, iespējams, apdraudēs sistēmas vispārējo funkcionalitāti, jūs vēlaties pārtraukt vai apturēt tā izpildi, nododot vienu no šiem signāliem, izmantojot tam programmu kill. Citi iemesli, kāpēc jūs apsvērtu iespēju to darīt, ir tad, kad esat sācis procesu priekšplānā, bet vēlaties to apturēt un atsākt fonā.

Ja noteikta procesa normāla izpilde nozīmē, ka tā darbības laikā uz ekrāna netiks nosūtīta neviena izeja, ieteicams to sākt vai nu fonā (pievienojot zīmi komandas beigās).

process_name &

vai,
Kad tas ir sācis darboties priekšplānā, apturiet to un nosūtiet to uz fona ar

Ctrl + Z
# kill -18 PID

Lūdzu, ņemiet vērā, ka katrs izplatījums nodrošina rīkus, lai graciozi apturētu/palaistu/restartētu/atkārtoti ielādētu kopējos pakalpojumus, piemēram, pakalpojums SysV balstītās sistēmās vai systemctl sistēmās balstītās sistēmās.

Ja process nereaģē uz šiem utilītprogrammām, varat to nogalināt ar varu, nosūtot tam SIGKILL signālu.

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

Tātad .. Kas notiek/notiek?

Ja sistēmā ir bijis jebkāda veida pārtraukums (vai tas būtu strāvas padeves pārtraukums, aparatūras kļūme, plānots vai neplānots procesa pārtraukums vai kāda novirze vispār), žurnāli tiek ierakstīti /var/log ir jūsu labākie draugi, lai noteiktu, kas noticis vai kas varētu izraisīt jūsu problēmas.

# cd /var/log

Daži no /var/log mapē esošajiem vienumiem ir parastie teksta faili, citi ir direktoriji un vēl citi ir saspiesti pagrieztu (vēsturisku) žurnālu faili. Jūs vēlēsities pārbaudīt tos, kuru vārdā ir vārds kļūda, taču pārējo pārbaude var arī noderēt.

Attēlojiet šo scenāriju. Jūsu LAN klienti nespēj drukāt ar tīkla printeriem. Pirmais solis, lai novērstu šo situāciju, ir /var/log/cups direktorija un vietņu skatīšana.

Varat izmantot komandu asti , lai parādītu pēdējās 10 faila error_log rindas, vai arī tail -f error_log žurnāla reāllaika skatam.

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

Iepriekš redzamajā ekrānuzņēmumā ir sniegta noderīga informācija, lai saprastu, kas varētu izraisīt jūsu problēmu. Ņemiet vērā, ka darbību izpildīšana vai procesa nepareizas darbības novēršana joprojām var neatrisināt kopējo problēmu, taču, ja jūs jau no paša sākuma izmantojat žurnālu pārbaudi katru reizi, kad rodas problēma (vai tā būtu lokāla vai tīkla), jūs Es noteikti būšu uz pareizā ceļa.

Lai gan aparatūras kļūmes var būt sarežģīti novērst, jums jāpārbauda dmesg un ziņojumu žurnāli un jāpievērš uzmanība saistītajiem vārdiem ar aparatūras daļu, kas tiek uzskatīta par kļūdainu.

Zemāk redzamais attēls tiek ņemts no /var/log/messages pēc tam, kad meklējat kļūdu pēc vārda, izmantojot šādu komandu:

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

Mēs varam redzēt, ka mums ir problēmas ar divām atmiņas ierīcēm: /dev/sdb un /dev/sdc , kas savukārt rada problēmas ar RAID masīvu.

Secinājums

Šajā rakstā mēs esam izpētījuši dažus rīkus, kas var palīdzēt jums vienmēr zināt savas sistēmas vispārējo stāvokli. Turklāt jums jāpārliecinās, ka operētājsistēma un instalētās pakotnes ir atjauninātas līdz jaunākajām stabilajām versijām. Un nekad, nekad neaizmirstiet pārbaudīt žurnālus! Tad jūs virzīsities pareizajā virzienā, lai atrastu galīgo risinājumu visiem jautājumiem.

Jūtieties brīvi atstāt komentārus, ieteikumus vai jautājumus, ja jums ir kādi, izmantojot zemāk esošo veidlapu.