GNU/Linux >> Znalost Linux >  >> Linux

Tipy na začátek:Sledování zatížení procesoru v systému Linux

Tento článek je výňatek z kapitoly 13 knihy Linux v akci, vydal Manning.

Byl výkon vašeho počítače se systémem Linux nepravidelný nebo neobvykle pomalý? Máte podezření, že rostoucí poptávka může převyšovat vaše dostupné zdroje? Zde je několik otázek, které byste si měli položit:

  • Jak blízko jste vyčerpání zdrojů procesoru a paměti?
  • Neběží něco zbytečně, co by se dalo vypnout?
  • Existuje něco, co bez vašeho vědomí funguje jako nečestné?

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

Kde byste měli hledat odpovědi? nahoře program je skvělým místem, kde začít. Může vám poskytnout bohatý, samoaktualizační přehled o procesech běžících ve vašem systému.

Obrázek níže ukazuje typickou obrazovku top data. První řádek obsahuje aktuální čas, čas, který uplynul od posledního spuštění systému, počet aktuálně přihlášených uživatelů a průměry zatížení za poslední minutu, pět minut a 15 minut. Tyto informace lze také vrátit spuštěním uptime .

Protože se snažíme vyřešit problémy s výkonem, sloupce dat, které by nás měly zajímat nejvíce, jsou %CPU (procento kapacity CPU aktuálně využívané daným procesem) a %MEM (procento kapacity paměti). Zvláště si budete chtít povšimnout procesů, které se zobrazují v horní části seznamu.

V tomto případě můžete vidět, že démon MySQL využívá 4,3 % CPU serveru a z dalšího sloupce 13 % jeho paměti. Pokud budete postupovat podle tohoto řádku vlevo, uvidíte, že ID procesu (PID) je 1367 a proces je "vlastněn" mysql uživatel.

Možná dojdete k závěru, že tento proces si vyžádal více zdrojů, než lze ospravedlnit, a bude muset být obětován (pro větší dobro, rozumíte). To top displej vám dal vše, co budete k jeho zabití potřebovat. Vzhledem k tomu, že MySQL je služba spravovaná systemd (na těch distribucích používajících systemd), vaší první volbou by mělo být použití systemctl jemně zpomalit proces, aniž by byla ohrožena jakákoli data aplikace.

systemctl stop mysqld

Pokud proces, který chcete ukončit, nespravuje systemd nebo pokud se něco pokazilo a systemctl se nepodařilo zastavit, pak můžete použít buď kill nebo killall k odstranění vašeho procesu. Některé systémy vyžadují instalaci killall jako součást psmisc balík. Předáte PID, abyste kill tímto způsobem:

kill 1367

killall , na druhé straně používá název procesu spíše než jeho ID.

killall mysqld

Zabít nebo zabít všechny, to je otázka . Ve skutečnosti je odpověď zřejmá. killall vypne jeden proces, který je založen na PID, zatímco killall zabije tolik instancí konkrétního programu, kolik běží. Pokud by tedy existovaly dvě nebo tři samostatné instance MySQL – možná patřící samostatným uživatelům – všechny by byly zastaveny. Před spuštěním killall , ujistěte se, že neexistují žádné podobně pojmenované procesy, které chcete stále provozovat a které by se mohly stát "vedlejšími škodami."

Samozřejmě budete muset také spustit systemctl disable abyste se ujistili, že se proces při příštím spuštění nerestartuje.

systemctl disable mysqld

Dešifrování nahoře

Pro případ, že byste je někdy potřebovali, třetí řádek top výstup, který jste viděli o něco dříve, nám poskytuje časové hodnoty (v procentech) pro řadu dalších metrik CPU. Zde je stručný přehled změti zkratek, které tam uvidíte:

Metrika Význam
us Čas běžící procesy s vysokou prioritou (bez niceho)
sy Proces běžícího jádra
ni Čas běžící procesy s nízkou prioritou (pěkné)
id Čas strávený naprázdno
wa Čas čekání na dokončení I/O událostí
hi Čas strávený správou hardwarových přerušení
si Čas strávený správou softwarových přerušení
st Čas ukradený tomuto virtuálnímu počítači jeho hypervizorem (hostitelem)

top zobrazení lze přizpůsobit v reálném čase pomocí vstupu z klávesnice. Zadejte h se dozvíte více.

Dělání problémů (simulování zátěže CPU)

Touha vidět top v akci, ale nevěděli byste, že všechno běží hladce?

Proč nesimulovat přetížení CPU na krizové úrovni? Podobně jako děti yes bude vydávat (digitální) šum nepřetržitě, dokud nebude vyzváno k zastavení. Na druhou stranu to není vůbec jako děti.

Tento příkaz přesměruje tento šum na jednorázový /dev/null soubor a & postava posune proces do pozadí a vrátí vám kontrolu nad příkazovým řádkem. Chcete-li zvýšit tlak, spusťte příkaz ještě několikrát.

$ yes > /dev/null &

To by je mělo zaměstnat. Zatímco vše běží, sledujte top vidět, co se děje. Můžete také zkusit spustit jiné aplikace, abyste viděli, jak moc bude trvat, než je zpomalí. Až budete hotovi, spusťte killall odškrtnout všechna vaše yes relace na jeden zátah.

$ killall yes


Linux
  1. 3 tipy pro tisk s Linuxem

  2. 8 tipů pro příkazový řádek Linuxu

  3. Jak omezit využití CPU procesu v Linuxu

  1. Top 10 tutoriálů pro správce Linuxu

  2. Tipy pro příkazový řádek Linuxu pro zvýšení produktivity

  3. Jak nainstalovat a nakonfigurovat Monit na Linuxu pro monitorování procesů

  1. Nejlepších 5 podcastů pro novinky a tipy pro Linux

  2. 8 Linuxových příkazů pro efektivní řízení procesů

  3. Nejlepší linuxové nástroje pro spisovatele