Aj keď je Linux veľmi spoľahlivý, múdri správcovia systému by mali nájsť spôsob, ako neustále sledovať správanie a využitie systému. Zabezpečenie prevádzkyschopnosti čo najbližšie k 100% dostupnosť a zdroje sú v mnohých prostrediach kritickými potrebami. Skúmanie minulého a súčasného stavu systému nám umožní predvídať a s najväčšou pravdepodobnosťou predchádzať možným problémom.
Predstavujeme certifikačný program Linux Foundation
V tomto článku predstavíme zoznam niekoľkých nástrojov, ktoré sú k dispozícii vo väčšine pôvodných distribúcií na kontrolu stavu systému, analýzu výpadkov a riešenie pretrvávajúcich problémov. Konkrétne z nespočetného množstva dostupných údajov sa zameriame na využitie CPU, úložného priestoru a pamäte, základnú správu procesov a analýzu protokolov.
V Linuxe existujú 2 známe príkazy, ktoré sa používajú na kontrolu využitia úložného priestoru: df a du.
Prvý, df (čo znamená voľný disk) sa zvyčajne používa na hlásenie celkového využitia miesta na disku súborovým systémom.
Bez možností, df hlási využitie miesta na disku v bajtoch. S -h príznak zobrazí namiesto toho rovnaké informácie pomocou MB alebo GB. Upozorňujeme, že táto správa obsahuje aj celkovú veľkosť každého systému súborov (v blokoch 1-K), voľné a dostupné miesta a bod pripojenia každého úložného zariadenia.
# df. # df -h.
To je určite pekné - existuje však ďalšie obmedzenie, ktoré môže spôsobiť, že systém súborov nie je použiteľný, a to, že dochádzajú inody. Všetky súbory v súborovom systéme sú mapované do inodu, ktorý obsahuje jeho metaúdaje.
# df -hTi.
môžete vidieť množstvo použitých a dostupných inódov:
Podľa vyššie uvedeného obrázku existujú 146 použité inódy (1%) v /home, čo znamená, že v tomto systéme súborov môžete stále vytvárať 226 000 súborov.
Všimnite si toho, že vám môže dôjsť úložný priestor dlho pred tým, ako sa vám minú inody, a naopak. Z tohto dôvodu musíte monitorovať nielen využitie úložného priestoru, ale aj počet inód používaných systémom súborov.
Nasledujúce príkazy použite na vyhľadanie prázdnych súborov alebo adresárov (ktoré zaberajú 0B), ktoré používajú inody bez uvedenia dôvodu:
# find /home -type f -empty. # find /home -type d -prázdny.
Môžete tiež pridať -vymazať označte na konci každého príkazu, ak chcete odstrániť aj tieto prázdne súbory a adresáre:
# find /home -type f -empty --delete. # find /home -type f -empty.
Predchádzajúci postup odstránil 4 súbory. Znova skontrolujeme počet použitých / dostupných uzlov v / home:
# df -hTi | grep domov.
Ako vidíte, existujú 142 teraz sa používajú inody (o 4 menej ako predtým).
Ak je používanie určitého systému súborov nad vopred definovaným percentom, môžete použiť du (skratka pre využitie disku), aby ste zistili, ktoré súbory zaberajú najviac miesta.
Príklad je uvedený pre /var, ktorý, ako vidíte na prvom obrázku vyššie, sa používa na svojich 67%.
# du -sch /var /*
Poznámka: Že sa môžete prepnúť do ktoréhokoľvek z vyššie uvedených podadresárov, aby ste zistili, čo presne v nich je a koľko jednotlivé položky zaberajú. Tieto informácie potom môžete použiť na odstránenie niektorých súborov, ak nie sú potrebné, alebo v prípade potreby na zväčšenie veľkosti logického zväzku.
Prečítajte si tiež
Klasický nástroj v systéme Linux, ktorý sa používa na vykonanie celkovej kontroly využitia CPU / pamäte a správy procesov, je vrchný príkaz. Navrch navyše zobrazuje v reálnom čase pohľad na spustený systém. Na ten istý účel je možné použiť aj ďalšie nástroje, ako napr htop, ale uspokojil som sa so špičkou, pretože je nainštalovaný ihneď po vybalení v akejkoľvek distribúcii Linuxu.
Ak chcete začať od začiatku, zadajte do príkazového riadka nasledujúci príkaz a stlačte kláves Enter.
# hore.
Pozrime sa na typický špičkový výstup:
V riadkoch 1 až 5 sú zobrazené nasledujúce informácie:
1. Aktuálny čas (20:41:32 hod.) A doba prevádzky (7 hodín a 41 minút). Do systému je prihlásený iba jeden používateľ a priemerná záťaž za posledných 1, 5 a 15 minút. 0,00, 0,01 a 0,05 naznačujú, že v týchto časových intervaloch bol systém 0% času nečinný (0,00: žiadne procesy neboli čakanie na procesor), potom bolo preťažené o 1% (0,01: na procesor čakalo v priemere 0,01 procesu) a o 5% (0.05). Ak je hodnota menšia než 0 a číslo je menšie (napríklad 0,65), systém bol počas posledných 1, 5 alebo 15 minút nečinný 35%, v závislosti od toho, kde sa zobrazuje 0,65.
2. Aktuálne je spustených 121 procesov (kompletný zoznam si môžete pozrieť v 6). Je spustený iba 1 z nich (v tomto prípade top, ako vidíte v stĺpci %CPU) a zvyšných 120 čaká na pozadí, ale „spí“ a zostane v tomto stave, kým ich nezavoláme. Ako? Môžete to overiť otvorením výzvy mysql a vykonaním niekoľkých dotazov. Všimnete si, ako sa zvyšuje počet spustených procesov.
Prípadne môžete otvoriť webový prehliadač a prejsť na ľubovoľnú danú stránku, ktorú používa server Apache, a získate rovnaký výsledok. Tieto príklady samozrejme predpokladajú, že obe služby sú nainštalované na vašom serveri.
3. us (čas spustenia používateľských procesov s neupravenou prioritou), sy (procesy spustenia jadra), ni (čas spustenia používateľských procesov s upravenou prioritou), wa (čas čakania na I/O dokončenie), hi (čas strávený údržbou hardvérových prerušení), si (čas strávený údržbou softvérových prerušení), st (čas ukradnutý z aktuálneho VM hypervisorom - iba vo virtualizovanom prostredia).
4. Využitie fyzickej pamäte.
5. Vymeňte využitie priestoru.
Môžete tiež použiť pamäť RAM a využitie swapu zadarmo príkaz.
# zadarmo.
Môžete samozrejme použiť aj -m (MB) alebo -g (GB) prepne na zobrazenie rovnakých informácií v čitateľnej forme:
# zadarmo -m.
V každom prípade si musíte uvedomiť, že jadro si rezervuje čo najviac pamäte a sprístupňuje ju procesom, keď o to požiadajú. Najmä „-/+ nárazníky/vyrovnávacia pamäťRiadok ”zobrazuje skutočné hodnoty po zohľadnení tejto vyrovnávacej pamäte I/O.
Inými slovami, množstvo pamäte využívanej procesmi a množstvo dostupné iným procesom (v tomto prípade 232 MB použité a 270 MB k dispozícii). Keď procesy potrebujú túto pamäť, jadro automaticky zníži veľkosť I/O vyrovnávacej pamäte.
Prečítajte si tiež: 10 Užitočný „bezplatný“ príkaz na kontrolu využitia pamäte Linux
V každom čase v našom systéme Linux beží mnoho procesov. Existujú dva nástroje, ktoré použijeme na podrobné sledovanie procesov: ps a pstree.
Pomocou -e a -f možnosti kombinované do jedného (-ef) môžete uviesť všetky procesy, ktoré sú aktuálne spustené vo vašom systéme. Tento výstup môžete prepojiť s inými nástrojmi, ako napr grep (ako je vysvetlené v 1. časť série LFCS) zúžiť výstup na požadovaný proces (procesy):
# ps -ef | chobotnica grep -i | grep -v grep.
Vyššie uvedený zoznam procesov zobrazuje nasledujúce informácie:
vlastník procesu, PID, nadradený PID (nadradený proces), využitie procesora, čas spustenia príkazu, tty (? označuje, že ide o démona), kumulovaný čas CPU a príkaz spojený s procesom.
Možno však nepotrebujete všetky tieto informácie a chceli by ste ukázať vlastníkovi procesu, príkazu, ktorý ho spustil, jeho PID a PPID, a percento pamäte, ktorú práve používa - v uvedenom poradí a zoradiť podľa použitia pamäte v zostupnom poradí (všimnite si, že ps v predvolenom nastavení je zoradené podľa PID).
# ps -eo užívateľ, komunikácia, pid, ppid,%mem -triedenie -%mem.
Kde znamienko mínus pred %mem označuje zoradenie zostupne.
Ak z nejakého dôvodu proces začne zaberať príliš veľa systémových zdrojov a pravdepodobne to celkovo ohrozí funkčnosť systému, budete chcieť zastaviť alebo pozastaviť jeho vykonávanie pomocou jedného z nasledujúcich signálov pomocou zabiť program na to. Ďalšími dôvodmi, prečo by ste to urobili, je, keď ste spustili proces v popredí, ale chcete ho pozastaviť a pokračovať na pozadí.
Signálne meno | Číslo signálu | Popis |
SIGTERM | 15 | Zabite proces ladne. |
SIGINT | 2 | Toto je signál, ktorý sa odošle, keď stlačíme Ctrl + C. Cieľom je prerušiť proces, ale proces ho môže ignorovať. |
SIGKILL | 9 | Tento signál tiež prerušuje proces, ale robí to bezpodmienečne (používajte opatrne!), Pretože proces ho nemôže ignorovať. |
PRIPOJIŤ | 1 | Skratka pre „Zavesiť“, tento signál inštruuje démonov, aby si znova prečítali jeho konfiguračný súbor bez toho, aby proces v skutočnosti zastavili. |
SIGTSTP | 20 | Pozastavte spustenie a počkajte, kým budete pokračovať. Toto je signál, ktorý sa odošle, keď napíšeme kombináciu klávesov Ctrl + Z. |
SIGSTOP | 19 | Tento proces je pozastavený a až do reštartu nedostáva väčšiu pozornosť od cyklov CPU. |
SIGCONT | 18 | Tento signál hovorí, aby proces pokračoval v vykonávaní po prijatí buď SIGTSTP alebo SIGSTOP. Toto je signál, ktorý vysiela shell, keď používame príkazy fg alebo bg. |
Keď normálne spustenie určitého procesu znamená, že na obrazovku sa neodošle žiadny výstup pri spustení, možno ho budete chcieť spustiť na pozadí (pridaním znaku ampersand na konci príkaz).
názov_procesu &
alebo,
Hneď ako sa spustí v popredí, pozastavte ho a pošlite ho na pozadie pomocou
Ctrl + Z.
# zabiť -18 PID.
Upozorňujeme, že každá distribúcia poskytuje nástroje na plynulé zastavenie / spustenie / reštart / opätovné načítanie bežných služieb, ako napr služba v systémoch založených na SysV alebo systemctl v systémoch založených na systemd.
Ak proces na tieto nástroje nereaguje, môžete ho násilím zabiť tak, že mu doň pošlete signál SIGKILL.
# ps -ef | grep apache. # zabiť -9 3821.
Keď dôjde k akémukoľvek výpadku systému (či už ide o výpadok napájania, zlyhanie hardvéru, plánované alebo neplánované prerušenie procesu alebo akákoľvek abnormalita vôbec), prihlási sa /var/log sú vaši najlepší priatelia, aby zistili, čo sa stalo alebo čo by mohlo spôsobiť problémy, s ktorými sa stretávate.
# cd /var /log.
Niektoré položky v /var/log sú bežné textové súbory, iné sú adresármi a ďalšie sú komprimovanými súbormi otočených (historických) protokolov. Budete chcieť skontrolovať tých, ktorí majú v názve slovo chyba, ale kontrola zvyšku môže byť tiež užitočná.
Predstavte si tento scenár. Vaši klienti LAN nedokážu tlačiť na sieťových tlačiarňach. Prvým krokom k vyriešeniu tejto situácie bude /var/log/cups adresár a zistite, čo tam je.
Môžete použiť chvost príkaz na zobrazenie posledných 10 riadkov súboru error_log, príp chvost -f error_log pre zobrazenie denníka v reálnom čase.
# cd/var/log/poháre. # ls. # tail error_log.
Vyššie uvedená snímka obrazovky poskytuje niekoľko užitočných informácií, ktoré vám pomôžu pochopiť, čo môže byť príčinou vášho problému. Uvedomte si, že dodržanie týchto krokov alebo náprava nesprávnej činnosti procesu stále nemusí vyriešiť celkový problém, ale ak ste zvyknutí hneď od začiatku kontrolovať protokoly zakaždým, keď sa vyskytne problém (či už lokálny alebo sieťový), budete určite vpravo trať.
Napriek tomu, že riešenie problémov so zlyhaním hardvéru môže byť náročné, mali by ste skontrolovať dmesg a protokoly správ a grep pre súvisiace slová k hardvérovej časti sa považujú za chybné.
Nasledujúci obrázok je prevzatý z /var/log/messages po hľadaní slova chyba pomocou nasledujúceho príkazu:
# less/var/log/messages | grep -i chyba.
Vidíme, že máme problém s dvoma úložnými zariadeniami: /dev/sdb a /dev/sdc, čo zase spôsobuje problém s poľom RAID.
V tomto článku sme preskúmali niektoré z nástrojov, ktoré vám môžu pomôcť vždy vedieť o celkovom stave vášho systému. Okrem toho sa musíte uistiť, že váš operačný systém a nainštalované balíky sú aktualizované na najnovšie stabilné verzie. A nikdy, nikdy nezabudnite skontrolovať záznamy! Potom sa vydáte správnym smerom, aby ste našli konečné riešenie akýchkoľvek problémov.
Neváhajte a zanechajte svoje komentáre, návrhy alebo otázky - ak máte - pomocou nižšie uvedeného formulára.