Hlavní navigace

Používejte nový iotop

27. 1. 2023

Sdílet

příkazová řádka termiál Autor: Depositphotos

Většina z vás patrně zná nástroj iotop, který přehledně vypíše procesy podle toho, jak zatěžují bloková zařízení. Podobně jak to dělá top pro zatížení procesoru. Jelikož si na jednom stroji sám kompiluji jádro, tak jsem si všiml spodního řádku iotop, kde stojí:

CONFIG_TASK_DELAY_ACCT not enabled in kernel, cannot determine SWAPIN and IO %

Zvláštní na tom je, že CONFIG_TASK_DELAY_ACCT=y v jádře mám. Pokud máte distribuční jádro, máte to tam patrně také. Jal jsem se pátrat dále. Oficiální stránka iotop říká, že má být v jádře CONFIG_TASK_DELAY_ACCT, CONFIG_TASKSTATS, CONFIG_TASK_IO_ACCOUNTING a CONFIG_VM_EVENT_COUNTERS. Vše tam mám, ale stále iotop opakuje stejnou hlášku.

Zjistil jsem, že od jádra 5.14 je TASK_DELAY_ACCT možné zapnout a vypnout za chodu. Je to možné udělat několika způsoby a nejednodušší je asi sudo sysctl kernel.task_delayacct=1 a sudo sysctl kernel.task_delayacct=0. Důvodem je, že zapnutí má negativní vliv na výkon a je proto lépe nechávat TASK_DELAY_ACCT vypnutý, což je také výchozí stav.

Také ten původní iotop v poslední verzi 0.6 je z roku 2013 a je napsaný v Pythonu. Naštěstí v Pythonu 3, takže stále funguje. Ale nejméně od roku 2014 tu je nástroj iotop-c od Tomáše Matějíčka napsaný v C s posledním vydáním před třemi dny (zjištění z předchozího odstavce jsou mimochodem z manuálové stránky právě iotop-c). Navíc je balíček iotop-c běžnou součástí distribucí a příkaz ke spuštění je jako dříve iotop. Proto můžete odtranit balíček iotop a nahradit jej iotop-c:

sudo apt purge iotop
sudo apt install iotop-c

Také přímo v iotop-c je možné zapnout TASK_DELAY_ACCT pomocí CTRL+T a stejně jej zase vypnout. Pokud jej zapomenete vypnout, dostanete po ukončení programu varování.

Autor: Tomáš Matějíček
Našli jste v článku chybu?
  • Aktualita je stará, nové názory již nelze přidávat.

Byl pro vás článek přínosný?

Autor zprávičky

První linux nainstaloval kolem roku 1994 a u něj zůstal. Později vystudoval fyziku a získal doktorát.