Na počítačích Lenovo T400 a Ubuntu bliká kontrolka zápisu pevného disku. Zajímalo by mě, jestli v Linuxu je možné zjistit, jaké procesy dělají I/O na pevný disk? Stejně jako v top
můžete zjistit, jaké procesy využívají většinu CPU a paměti.
Iotop je dobrý nástroj pro to, co chcete. Umožňuje také zobrazit nashromážděné množství I/O na některém z DISK READ, DISK WRITE, SWAPIN a IO (celkové procento)). To je prostřednictvím šikovného rozhraní:
Stejně jako top
, prezentace je dost zaneprázdněno. Další věc je, že nemá nesčetné možnosti, které má top
(např. Nemůžu se rozhodnout skrýt žádnou z sloupce, které mě nezajímají), ale nástroj je pro svůj konkrétní účel dostatečně dobrý.
Můžete použít lsof
( man lsof ). Následující seznam vrátí seznam všech souborů, které jsou otevřené pro zápis:
lsof | grep -e "[[:digit:]]\+w"
Použijte strace
.
Zejména pro nízkou aktivitu disku je nutné použít iotop v dávkovém režimu, aby se zabránilo rychlému vymizení krátkých přístupových linek. Odpověď Jak mohu logovat systém souborů číst/zapisovat podle názvu souboru v Linuxu? ukazuje, jak to provést.
Doposud je
iotop
nejlepším celkovým řešením. Následující příkaz vám poskytne výstup všech procesů pomocí disku v reálném čase.
iotop -bktoqqq -d .5
where: -b is batch mode
-k is kilobytes/s
-t adds timestamp
-o only show processes or threads actually doing I/O
-qqq removes output headers
-d .5 updates every .5 seconds
Jakmile máte ID procesu, můžete také najít soubory
lsof -p $PID