Pokusit se zjistit, co na vašem počítači běží – a který proces zabírá veškerou vaši paměť a dělá věci slllooowwww – je úkol, který dobře poslouží nástroj top
.
top
je mimořádně užitečný program, který funguje podobně jako Správce úloh systému Windows nebo Monitor aktivity systému MacOS. Spuštění top
na vašem stroji *nix vám ukáže živý, běžící pohled na proces běžící ve vašem systému.
$ top
V závislosti na verzi top
když běžíte, dostanete něco, co vypadá takto:
nahoře - 08:31:32 nahoru 1 den, 4:09, 0 uživatelů, průměrné zatížení:0,20, 0,12, 0,10
Úkoly: 3 celkem, 1 běžící, 2 spící, 0 zastaveno, 0 zombie
%Cpu(s):0,5 us, 0,3 sy, 0,0 ni, 99,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 4042284, 6 7 volná vyrovnávací paměť, celkem 0 41 25 5
KiB Swap: 1048572 celkem, 0 využito, 1048572 zdarma. 1804264 MEMPED MEM
PID UŽIVATELSKÁ PR NE NE NI VIR RNE SHR S% CPU% MEM TIME + COMBAND
1 Root 20 0 21964 3632 3124 S 0.0 0,1 0:00.23 Bash
193 Root 20 0 123520 29636 8640 S 0,0 0,7 0:00,58 baňka
195 kořen 20 0 23608 2724 2400 R 2400, 2 0 0.Vaše verze
top
může vypadat jinak, zejména ve zobrazených sloupcích.Jak číst výstup
Na základě výstupu poznáte, co spouštíte, ale pokus o interpretaci výsledků může být mírně matoucí.
Prvních pár řádků obsahuje hromadu statistik (podrobnosti), za nimiž následuje tabulka se seznamem výsledků (seznam). Začněme tím druhým.
Seznam
Další zdroje pro Linux
- Cheat pro příkazy Linuxu
- Cheat sheet pro pokročilé příkazy systému Linux
- Bezplatný online kurz:Technický přehled RHEL
- Síťový cheat pro Linux
- Cheat sheet SELinux
- Cheat pro běžné příkazy pro Linux
- Co jsou kontejnery systému Linux?
- Naše nejnovější články o Linuxu
Toto jsou procesy které běží v systému. Ve výchozím nastavení jsou seřazeny podle využití CPU v sestupném pořadí. To znamená, že položky v horní části seznamu využívají více prostředků CPU a způsobují větší zatížení vašeho systému. Jsou to doslova „top“ procesy podle využití zdrojů. Musíte uznat, že je to chytré jméno.
COMMAND
sloupec zcela vpravo hlásí název procesu (příkaz, který jste spustili pro jejich spuštění). V tomto příkladu jsou to bash
(překladač příkazů, který používáme top
in), flask
(webový mikrorámec napsaný v Pythonu) a top
sám.
Ostatní sloupce poskytují užitečné informace o procesech:
PID
:ID procesu , jedinečný identifikátor pro adresování procesůUSER
:uživatel spouštějící procesPR
:priorita úkoluNI
:hezčí znázornění priorityVIRT
:velikost virtuální paměti v KiB (kibibajtech)*RES
:velikost rezidentní paměti v KiB* („fyzická paměť“ a podmnožina VIRT)SHR
:velikost sdílené paměti v KiB* ("sdílená paměť" a podmnožina VIRT)S
:stav procesu, obvykle I =nečinný, R =běh, S =spánek, Z =zombie, T nebo t =zastaveno (existují i jiné, méně obvyklé možnosti)%CPU
:Procento využití procesoru od poslední aktualizace obrazovky%MEM
:procentoRES
využití paměti od poslední aktualizace obrazovkyTIME+
:celkový čas CPU použitý od spuštění procesuCOMMAND
:příkaz, jak je popsáno výše
*Vědět přesně, co je VIRT
, RES
a SHR
hodnoty představují ve skutečnosti záležitost v každodenním provozu. Důležité je vědět, že proces s nejvíce VIRT
je proces využívající nejvíce paměti. Pokud jste v top
protože ladíte, proč se váš počítač cítí jako v kaluži melasy, proces s největším VIRT
číslo je viníkem. Pokud se chcete dozvědět, co přesně znamená „sdílená“ a „fyzická“ paměť, podívejte se na „Typy paměti Linux“ v hlavní příručce.
A ano, chtěl jsem napsat kibi bajtů, nikoli kilo bajtů. Hodnota 1 024, kterou běžně nazýváte kilobajtem, je ve skutečnosti kibibajt. Řecké kilo ("χίλιοι") znamená tisíc a znamená 1000 něčeho (např. kilometr je tisíc metrů, kilogram je tisíc gramů). Kibi je zkilový portmanteau a bajt a to znamená 1 024 bajtů (nebo 2). Ale protože se slova těžko vyslovují, mnoho lidí říká kilobajt když znamenají 1 024 bajtů. To vše znamená top
se zde snaží použít správné termíny, tak s tím prostě běžte. #themore youknow ?.
Poznámka k aktualizacím obrazovky:
Aktualizace živé obrazovky jsou objektivně skutečně skvělé Linuxové programy umí. To znamená, že mohou aktualizovat svůj vlastní displej v reálném čase, takže vypadají jako animované. I když používají text. Tak hustý! V našem případě je čas mezi aktualizacemi důležitý, protože některé naše statistiky (%CPU
a %MEM
) jsou založeny na hodnotě od poslední aktualizace obrazovky.
A protože běžíme v trvalé aplikaci, můžeme stisknutím klávesových příkazů provádět živé změny nastavení nebo konfigurací (místo, řekněme, zavření aplikace a opětovné spuštění aplikace s jiným příznakem příkazového řádku).
Zadáním h
vyvolá obrazovku "nápověda", která také zobrazuje výchozí zpoždění (čas mezi aktualizacemi obrazovky). Ve výchozím nastavení je tato hodnota (asi) tři sekundy, ale můžete ji změnit zadáním d
(pravděpodobně pro "zpoždění") nebo s
(pravděpodobně pro „obrazovka“ nebo „sekundy“).
Podrobnosti
Nad seznamem procesů je celá řada dalších užitečných informací. Některé z těchto podrobností mohou vypadat zvláštně a matoucí, ale jakmile si uděláte čas na prozkoumání každého z nich, uvidíte, že jsou to velmi užitečné statistiky, které můžete v krátké době získat.
První řádek obsahuje obecné systémové informace
top
:používámetop
! Ahojtop
!XX:YY:XX
:čas, který se aktualizuje při každé aktualizaci obrazovkyup
(potéX day, YY:ZZ
):doba provozu systému nebo kolik času uplynulo od zapnutí systémuload average
(pak tři čísla):zatížení systému za poslední jednu, pět a 15 minut
Druhý řádek (Tasks
) zobrazuje informace o běžících úlohách a je to docela samovysvětlující. Zobrazuje celkový počet procesů a počet běžících, spících, zastavených a zombie procesů. Toto je doslova součet S
(stát ) popsaný výše.
Třetí řádek (%Cpu(s)
) zobrazuje využití CPU oddělené podle typů. Data jsou hodnoty mezi aktualizacemi obrazovky. Hodnoty jsou:
us
:uživatelské procesysy
:systémové procesyni
:pěkné uživatelské procesyid
:doba nečinnosti CPU; vysoká doba nečinnosti znamená, že jinak se toho moc nedějewa
:doba čekání nebo doba strávená čekáním na dokončení I/Ohi
:čas strávený čekáním na hardwarová přerušenísi
:čas strávený čekáním na softwarová přerušeníst
:"čas ukradený z tohoto virtuálního počítače hypervizorem"
Tasks
můžete sbalit a %Cpu(s)
řádků zadáním t
(pro "přepnout").
Čtvrtý (KiB Mem
) a pátý řádek (KiB Swap
) poskytují informace pro paměť a swap. Tyto hodnoty jsou:
total
used
free
Ale také:
- paměťové
buffers
- vyměňte
cached Mem
Ve výchozím nastavení jsou uvedeny v KiB, ale stisknutím E
(pro "rozšíření škálování paměti") cyklicky prochází různými hodnotami:kibibajty, mebibajty, gibibajty, tebibajty, pebibajty a exbibajty. (To znamená kilobajty, megabajty, gigabajty, terabajty, petabajty a exabajty, ale jejich "skutečné názvy.")
top
uživatelská příručka zobrazuje ještě více informací o užitečných příznacích a konfiguracích. Chcete-li najít příručku na vašem systému, můžete spustit man top
. Existují různé webové stránky, které zobrazují HTML verzi příručky, ale mějte na paměti, že mohou být pro jinou verzi top .
Dvě nejlepší alternativy
Nemusíte vždy používat top
pochopit, co se děje. V závislosti na vašich okolnostech vám mohou pomoci diagnostikovat problémy i další nástroje, zvláště pokud chcete grafickější nebo specializovanější rozhraní.
htop
htop
je hodně podobný top
, ale přináší na stůl něco extrémně užitečného:grafické znázornění využití CPU a paměti.
Takto jsme zkoumali prostředí v top
vypadá v htop
. Displej je mnohem jednodušší, ale stále bohatý na funkce.
Naše počty úkolů, zatížení, doba provozuschopnosti a seznam procesů jsou stále k dispozici, ale získáváme šikovný, barevný, animovaný pohled na využití CPU na jádro a graf využití paměti.
Zde je vysvětleno, co znamenají různé barvy (tuto informaci můžete získat také stisknutím h
pro "pomoc").
Priority nebo typy úloh CPU:
- modrá:nízká priorita
- zelená:normální priorita
- červená:úlohy jádra
- modrá:virtualizované úlohy
- hodnota na konci sloupce je procento využití CPU
Paměť:
- zelená:použitá paměť
- modrá:vyrovnávací paměť
- žlutá:mezipaměť
- hodnoty na konci pruhu ukazují použitou a celkovou paměť
Pokud pro vás barvy nejsou užitečné, můžete spustit htop -C
zakázat je; místo toho htop
bude používat různé symboly k oddělení typů CPU a paměti.
Ve spodní části je užitečné zobrazení aktivních funkčních kláves, které můžete použít k provádění věcí, jako je filtrování výsledků nebo změna pořadí řazení. Vyzkoušejte některé z příkazů, abyste viděli, co dělají. Při zkoušení F9
buďte opatrní . Tím se zobrazí seznam signálů, které zabijí (tj. zastaví) proces. Navrhoval bych prozkoumat tyto možnosti mimo produkční prostředí.
Autor htop
, Hisham Muhammad (a ano, říká se tomu htop
po Hishamovi) přednesl bleskovou přednášku o htop
na FOSDEM 2018 v únoru. Vysvětlil, jak htop
má nejen úhlednou grafiku, ale také poskytuje modernější statistické informace o procesech, než starší monitorovací nástroje (jako top
) ne.
Můžete si přečíst více o htop
na stránce manuálu nebo na webu htop. (Upozornění:webová stránka obsahuje animované pozadí htop
.)
statistiky dockeru
Pokud pracujete s Dockerem, můžete spustit docker stats
k vytvoření kontextově bohaté reprezentace toho, co vaše kontejnery dělají.
To může být užitečnější než top
protože místo oddělování podle procesů oddělujete podle kontejneru. To je zvláště užitečné, když je kontejner pomalý, protože zjistit, který kontejner využívá nejvíce zdrojů, je rychlejší než spuštění top
a pokusit se namapovat proces na kontejner.
Výše uvedená vysvětlení zkratek a deskriptorů v top
a htop
by mělo usnadnit pochopení těch v docker stats
. Dokumentace statistik dockeru však poskytuje užitečné popisy každého sloupce.