it-swarm-eu.dev

Zjistěte, jaké procesy zapisují na pevný disk

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.

33
Tim

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í:

  • Stačí stisknout a na klávesnici a nahoře uspořádá nejhladnější procesy.
  • Vrácení objednávky stačí stisknout r.
  • Pokud chcete seřadit podle jiných sloupců, stačí stisknout levé/pravé tlačítko.

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ý.

42
tshepang

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"
15
James Sumners

Použijte strace.

2
user541686

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
2
Frank Breitling