Jak používat horní příkaz Linux (a porozumět jeho výstupu)

Příkaz top je jedním z nejzákladnějších nástrojů pro monitorování systémů v prostředích podobných Unixu. Tento příkaz zobrazuje dynamické informace o běžících procesech a využití systémových zdrojů. Možná vás překvapí, že top nabízí více, než jen základní tabulku – umí pracovat s barvami, zvýrazněním a dokonce i s grafickým zobrazením.

Informační panel

Příkaz top má kořeny sahající až do roku 1984 a v průběhu let vzniklo mnoho jeho modifikací. Pro tento popis používáme verzi 3.3.12 příkazu top v Ubuntu 18.04 s aktuálními aktualizacemi. Naše poznatky jsme ověřili také na dvou dalších testovacích systémech: Fedora a Manjaro.

Ve výchozím nastavení top zhušťuje maximum informací do okna terminálu. Pro administraci systému jsou tyto informace klíčové. Kvalitní administrátor musí být schopen včas odhalit potenciální problémy dříve, než negativně ovlivní chod systému. Top poskytuje souhrnný přehled o mnoha systémových metrikách, které vám v tomto pomohou.

Zobrazení je funkční, ne však zcela intuitivní. K dispozici je mnoho klávesových zkratek. Při prvním setkání může top působit stísněně a nepřehledně. Pomocí několika klávesových zkratek si však můžete obsah i formát zobrazení upravit podle svých potřeb.

Ověření verze příkazu top

Pro zjištění verze příkazu top, zadejte do terminálu následující příkaz:

top -v

Pokud používáte výrazně starší verzi než 3.3.12, některé z funkcí, které v tomto článku popisujeme, nemusí být dostupné.

Základní zobrazení

Pro spuštění top stačí zadat do terminálu následující příkaz:

top

Základní zobrazení se skládá ze dvou částí: souhrnného panelu a seznamu procesů. Ve výchozím stavu se zobrazení aktualizuje každé tři sekundy, což může způsobit mírné blikání.

První řádek souhrnného panelu udává čas od spuštění systému, počet přihlášených uživatelů a průměrné zatížení systému za posledních 1, 5 a 15 minut. Druhý řádek zobrazuje celkový počet úkolů a jejich stavy: běžící, zastavené, spící nebo zombie.

Třetí řádek poskytuje informace o využití procesoru (CPU):

  • us: Doba, po kterou CPU provádí procesy uživatelského prostoru.
  • sy: Doba, po kterou CPU provádí procesy jádra systému.
  • ni: Doba, po kterou CPU provádí procesy s ručně nastavenou prioritou.
  • id: Doba, kdy je CPU nečinné.
  • wa: Doba, kterou CPU čeká na dokončení I/O operací.
  • hi: Doba, po kterou CPU obsluhuje hardwarová přerušení.
  • si: Doba, po kterou CPU obsluhuje softwarová přerušení.
  • st: Doba, o kterou CPU přichází kvůli běhu virtuálních strojů („ukradený čas“).

Čtvrtý řádek ukazuje celkovou velikost fyzické paměti (v kibibajtech) a množství, které je volné, používané a v mezipaměti.

Pátý řádek zobrazuje celkovou velikost odkládací paměti (swap) a její volnou, používanou a dostupnou část. Dostupná paměť zahrnuje paměť, kterou lze získat z mezipaměti.

Záhlaví sloupců v seznamu procesů popisují:

  • PID: Identifikátor procesu.
  • USER: Vlastník procesu.
  • PR: Priorita procesu.
  • NI: Priorita procesu nastavená pomocí příkazu „nice“.
  • VIRT: Množství virtuální paměti, kterou proces využívá.
  • RES: Množství fyzické paměti (rezidentní), kterou proces využívá.
  • SHR: Množství sdílené paměti, kterou proces využívá.
  • S: Stav procesu. (Viz níže pro možné hodnoty).
  • %CPU: Procentuální podíl času CPU, který proces využil od poslední aktualizace.
  • %MEM: Procentuální podíl fyzické paměti, který proces využívá.
  • TIME+: Celkový čas CPU, který proces využil, v setinách sekundy.
  • COMMAND: Název příkazu nebo celá příkazová řádka (název + parametry).

Hodnoty paměti jsou uvedeny v kibibajtech. Sloupec COMMAND může být skrytý vpravo, pokud je okno terminálu příliš úzké.

Stav procesu může nabývat následujících hodnot:

  • D: Nepřerušitelný spánek.
  • R: Běží.
  • S: Spí.
  • T: Sledován (zastaven).
  • Z: Zombie.

Pro ukončení top stiskněte klávesu Q.

Posouvání zobrazení

Pomocí šipek nahoru a dolů, kláves Home, End a Page Up/Down se můžete pohybovat po seznamu procesů.

Levou a pravou šipkou posunete seznam procesů do stran. To je užitečné pro zobrazení sloupců, které se nevejdou do okna terminálu.

Následující obrázek zobrazuje sloupec COMMAND po několika stiscích pravé šipky.

Změna jednotek

Pro změnu zobrazovaných jednotek na rozumnější hodnoty stiskněte velké E. Můžete procházet jednotkami pro paměťové hodnoty na souhrnném panelu: kibibajty, mebibajty, gibibajty, tebibajty, pebibajty a exbibajty. Aktuální jednotka se zobrazuje na řádcích čtyři a pět.

Stisknutím malého e provedete totéž pro hodnoty v seznamu procesů: kibibajty, mebibajty, gibibajty, tebibajty a pebibajty.

Na následujícím obrázku jsou jednotky na souhrnném panelu nastaveny na gibibajty a jednotky seznamu procesů na mebibajty.

Změna obsahu souhrnného panelu

Nastavení zobrazení řádků na souhrnném panelu můžete libovolně měnit nebo i zcela skrýt.

Stisknutím klávesy l (malé L) zobrazíte nebo skryjete první řádek souhrnného panelu (řádek s informacemi o zatížení). Na následujícím obrázku je tento řádek skrytý.

Pokud máte vícejádrový procesor, stisknutím 1 změníte zobrazení a uvidíte statistiky pro každé jádro. V našem testovacím počítači jsou čtyři jádra. Stisknutím 1 zobrazíme využití každého z nich.

Toto zobrazení zabírá více prostoru v okně terminálu.

Klávesou t přepnete zobrazení CPU na jednoduché ASCII grafy, které ukazují procentuální využití každého jádra.

Každé jádro má v horní části tři čísla a graf. Čísla zleva doprava znamenají:

  • Kombinaci hodnot us a ni (uživatelský prostor + procesy s prioritou).
  • Hodnota sy (prostor jádra).
  • Celkový součet (zaokrouhlený na celé číslo).

Dalším stisknutím t se zobrazení grafů změní na plné blokové znaky.

Dalším stisknutím t se zobrazení CPU a řádek souhrnu úkolů zcela skryjí.

Stisknutím klávesy m můžete přepínat zobrazení řádků s informacemi o paměti. První stisknutí nahradí statistiky ASCII grafem.

Dalším stisknutím se graf změní na blokové znaky.

Dalším stisknutím m řádky s informacemi o paměti zcela skryjete.

Grafy využití CPU a paměti můžete mít zobrazené současně. Stačí stisknout t a m, dokud nedosáhnete požadované kombinace.

Barvy a zvýraznění

Stisknutím klávesy z zapnete barevné zobrazení.

Možná vás překvapí, že příkaz top umí zobrazovat barevné displeje a ASCII grafy, ale tyto funkce jsou přímo integrované.

Stisknutím y zvýrazníte běžící procesy. Stisknutím x zvýrazníte sloupec, podle kterého je seznam procesů seřazen. Klávesou b můžete přepínat mezi tučným a inverzním zvýrazněním textu.

Řazení sloupců

Ve výchozím nastavení je seznam procesů seřazen podle sloupce %CPU. Sloupec pro řazení můžete změnit pomocí následujících kláves:

  • P: Sloupec %CPU.
  • M: Sloupec %MEM.
  • N: Sloupec PID.
  • T: Sloupec TIME+.

Na následujícím obrázku je seznam procesů seřazen podle sloupce PID.

Zobrazení celého příkazového řádku

Klávesou c přepnete sloupec COMMAND mezi zobrazením názvu procesu a celého příkazového řádku.

Pro zobrazení stromové struktury procesů stiskněte V.

Zobrazení procesů konkrétního uživatele

Stisknutím klávesy u zobrazíte procesy konkrétního uživatele. Budete vyzváni k zadání jména nebo UID uživatele.

Zadejte jméno nebo UID uživatele. Zadáme „dave“ a stiskneme Enter. Nyní se zobrazí pouze procesy uživatele „dave“.

Zobrazení pouze aktivních úkolů

Stisknutím klávesy I zobrazíte pouze aktivní úkoly.

Úlohy, které od poslední aktualizace nevyužily žádný procesor, se nezobrazí.

Nastavení počtu zobrazených procesů

Stisknutím n omezíte zobrazení na určitý počet řádků. Budete vyzváni k zadání počtu procesů.

Zadáme 10 a stiskneme Enter, zobrazí se 10 procesů.

Změna priority procesu (renice)

Stisknutím klávesy r můžete změnit prioritu procesu. Budete vyzváni k zadání PID procesu. Pro použití PID z horní části seznamu stiskněte Enter. Zadáme 7800, což je PID instance Firefoxu.

Po stisknutí Enter budete vyzváni k zadání nové priority procesu. Zadáme 15 a stiskneme Enter.

Nová priorita se okamžitě aplikuje na proces.

Ukončení procesu

Stisknutím klávesy k proces ukončíte. Budete vyzváni k zadání PID procesu. Můžete procesu poslat jakýkoli signál. Ukončíme proces 7879, který přestal reagovat.

Můžete zadat signál, který chcete odeslat. Pokud jednoduše stisknete Enter, top pošle signál SIGTERM (kill).

Po stisknutí Enter se signál pošle procesu.

Přizpůsobení zobrazení

Můžete také přizpůsobit barvy a zobrazené sloupce. Změníme barvu výzev, výchozí je červená.

Stisknutím velkého Z přejdete do nastavení barev. Zobrazí se barvy jednotlivých prvků rozhraní. Pro označení prvku, který chcete změnit, stiskněte jedno z následujících písmen (velikost písmen hraje roli):

  • S: Oblast souhrnných dat.
  • M: Zprávy a výzvy.
  • H: Záhlaví sloupců.
  • T: Informace o úkolu v seznamu procesů.

Stisknutím klávesy M změníme barvu výzev.

Pro výběr barvy stiskněte jedno z následujících čísel:

  • 0: Černá.
  • 1: Červená.
  • 2: Zelená.
  • 3: Žlutá.
  • 4: Modrá.
  • 5: Purpurová.
  • 6: Azurová.
  • 7: Bílá.

Stisknutím 6 použijeme azurovou.

Stiskněte Enter pro uložení nastavení. Výzvy budou nyní zobrazeny ve vybrané barvě.

Můžeme také změnit sloupce zobrazené na obrazovce „Správa polí“. Stisknutím F přejděte na tuto obrazovku.

Zobrazené sloupce jsou označeny hvězdičkou a tučným písmem. Pro pohyb zvýraznění používejte šipky nahoru a dolů.

Pokud zvýraznění přesunete ze spodní části sloupce, zobrazí se na začátku následujícího (pokud nejste na konci posledního sloupce). Pokud zvýraznění přesunete z horní části sloupce, zobrazí se na konci předchozího (pokud nejste na začátku prvního sloupce).

Přesuneme zvýraznění na položku COMMAND a stisknutím klávesy d hvězdičku odstraníme.

Následně se přesuneme na položku UID a stisknutím d hvězdičku umístíme. To znamená, že sloupec COMMAND se nebude zobrazovat, ale zobrazí se sloupec UID.

Zatímco je zvýraznění ve sloupci UID, stiskněte s pro seřazení seznamu procesů podle tohoto sloupce.

Stisknutím Enter uložíte nastavení a poté stisknutím „q“ opustíte Správu polí.

Sloupec UID nahradil sloupec COMMAND a seznam procesů je podle něj seřazen.

Alternativní režim zobrazení

Nejlépe funguje v režimu celé obrazovky. Stisknutím klávesy A zobrazíte čtyři oblasti v seznamu procesů a klávesou a se mezi nimi můžete přepínat.

Každá oblast má jinou sadu sloupců, ale každá z nich je přizpůsobitelná na obrazovce Správa polí. Můžete si tak vytvořit vlastní celoobrazovkové zobrazení s různými informacemi v každé oblasti a seřadit každou oblast podle jiného sloupce.

Další užitečné klávesové zkratky

Níže uvádíme další klávesy, které by se vám mohly hodit:

  • W: Uloží nastavení a přizpůsobení, aby platila i při dalším spuštění.
  • d: Nastavení nové obnovovací frekvence zobrazení.
  • Mezerník: Vynutí obnovení zobrazení.

Příkaz top nabízí poměrně širokou škálu funkcí. Existují i jiné programy, jako htop, které se jím inspirovaly, ale každý z nich má svůj vlastní přístup.

top je však nainstalován téměř všude. Když se setkáte s podnikovými servery, často se dozvíte, že na produkčních serverech nelze měnit absolutně nic a klient trvá na tom, aby bylo používáno jen to, co je již nainstalováno.

I když preferujete jiné monitorovací nástroje, je užitečné se s příkazem top seznámit. Dříve či později se pravděpodobně ocitnete v situaci, kdy je to jediný dostupný nástroj.