GNU/Linux >> Znalost Linux >  >> Linux

Jak zjistit, který proces zapisuje na disk v Linuxu

V Linuxu je také možné získat statistiky I/O jednotlivých procesů, takže můžete přesně vidět, kdo čte a píše, pomocí programu s názvem iotop. iotop je třeba spustit s uživatelem root. Pomocí iotop můžete například zjistit, jak rychle dokáže váš pevný disk číst a zapisovat, a poté stiskněte klávesu q pro ukončení. Přečtěte si manuál na iotop, kde se dozvíte více o jeho zkratkách, například pro řazení sloupců.

Abychom viděli, který proces zapisuje na disk, můžeme použít příkaz „iotop“ k získání těchto informací

# iotop

Zobrazí výstup jako v následujícím příkladu:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 88.95 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 88.95 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>    COMMAND
27236 be/4 root 0.00 B/s  88.95 M/s  0.00 % 87.91% dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc
25600 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % less -s
    1 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % systemd --switched-root --system --deserialize 22
    2 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kthreadd]
    3 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksoftirqd/0]
    6 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kworker/u30:0]
    7 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_sched]
    8 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcu_bh]
    9 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuos/0]
   10 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [rcuob/0]
   11 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [migration/0]
   12 rt/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [watchdog/0]
   13 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khelper]
   14 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kdevtmpfs]
   15 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [netns]
   16 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [perf]
   17 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenwatch]
   18 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [xenbus]
   20 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khungtaskd]
   21 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [writeback]
   22 be/5 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [ksmd]
   23 be/7 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [khugepaged]
   24 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [crypto]
   25 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kintegrityd]
   26 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [bioset]
   27 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kblockd]
   28 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [md]
   29 be/0 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [devfreq_wq]
   31 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [kswapd0]
   32 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % [fsnotify_mark]
 1058 be/4 root 0.00 B/s  0.00 B/s   0.00 % 0.00 % cupsd -f

Ze zde uvedených sloupců nás mohou zajímat následující:

  • TID :Tento sloupec poskytuje PID procesu, který odesílá požadavky na vstup/výstup. To lze použít k prozkoumání nebo ukončení programu.
  • ČTENÍ DISKU :Tento sloupec znázorňuje počet bajtů přečtených za sekundu uvedeným procesem.
  • ZAPIS NA DISK :Tento sloupec uvádí počet bajtů zapsaných za sekundu uvedeným procesem.
  • IO :Tento sloupec zobrazuje procento času, který uvedený proces strávil vydáváním požadavků I/O.
  • PŘÍKAZ :Tento sloupec zobrazuje název procesu, který zpracovává I/O. Pokud se jedná o hlavní proces, může zahrnovat také přepínače příkazového řádku.

Ve výše uvedeném příkladu jsme v jiné relaci ssh spustili test dd (dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc), abychom viděli akci W/R, která se dostane na disk. .

Pokud chcete vidět pouze aktuální procesy zapisující na disk, stiskněte klávesu „o“ a dostanete výstup jako:

Total DISK READ : 0.00 B/s | Total DISK WRITE : 86.90 M/s
Actual DISK READ: 0.00 B/s | Actual DISK WRITE: 86.90 M/s
  TID PRIO USER DISK READ DISK WRITE SWAPIN IO>     COMMAND
27239 be/4 root 0.00 B/s  86.90 M/s  0.00 % 89.17 % dd if=/dev/zero of=test.zero bs=1024k count=1000 oflag=direct conv=notrunc

Níže jsou uvedeny některé z nejběžnějších možností, které můžeme použít:

  • Stiskněte vlevo a klávesy se šipkami doprava změnit řazení.
  • Stiskněte r pro obrácení pořadí řazení.
  • Stiskněte o pouze k zobrazení procesů nebo vláken, které skutečně provádějí I/O, namísto zobrazení všech procesů nebo vláken.
  • Klikněte na p zobrazit pouze procesy. Normálně iotop zobrazuje všechna vlákna.
  • Klikněte na a zobrazit akumulované I/O místo šířky pásma. V tomto režimu iotop zobrazuje množství I/O procesů, které byly provedeny od spuštění iotop.
  • Klikněte na i změnit prioritu vlákna nebo procesního vlákna, tj. ionice.
  • Klikněte na q ukončit iotop.

Další informace naleznete v manuálových stránkách.

# man iotop


Linux
  1. Jak zjistit, který proces vytváří soubor?

  2. Linux – Jak zjistit, který modul poškozuje jádro?

  3. Jak zjistit, který proces používá soubor v Linuxu?

  1. Jak zabít proces zombie na Linuxu

  2. Jak rozdělit disk v Linuxu

  3. Určete, ve které skupině (skupinách) je běžící proces?

  1. Jak nainstalovat vtop na Linux

  2. Jak mohu v Linuxu zjistit, který proces poslal mému procesu signál

  3. Jak mohu zjistit, který proces má soubor otevřený v Linuxu?