もっと詳しく

LinuxではプロセスごとのI/O統計を取得することも可能であるため、iotopという名前のプログラムを使用して、誰が大量に読み書きしているのかを正確に確認できます。 iotopはrootユーザーで開始する必要があります。 たとえば、iotopを使用して、ハードディスクの読み取りと書き込みの速度を確認し、qキーを押して終了することができます。 iotopのマニュアルのセクションを読んで、列の並べ替えなどのショートカットの詳細を確認してください。

どのプロセスがディスクに書き込んでいるかを確認するために、「iotop」コマンドを使用してその情報を取得できます。

次の例のような出力が表示されます。

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

ここに示されている列のうち、次のことに関心があるかもしれません。

  • TID:この列は、I/O要求を行うプロセスのPIDを提供します。 これは、プログラムを調査または終了するために使用できます。
  • ディスクを読む:この列は、リストされたプロセスによって1秒あたりに読み取られたバイト数を示しています。
  • ディスク書き込み:この列には、リストされたプロセスによって1秒あたりに書き込まれたバイト数の詳細が表示されます。
  • IO:この列には、リストされたプロセスがI/O要求の発行に費やした時間の割合が表示されます。
  • 指図:この列は、I/Oを処理するプロセスの名前を示しています。 これがマスタープロセスである場合は、コマンドラインスイッチも含まれる可能性があります。

上記の例では、別のsshセッションでddテスト(dd if = / dev / zero of = test.zero bs = 1024k count = 1000 oflag = direct conv = notrunc)を実行して、ディスクに送信されるW/Rアクションを表示しました。 。

ディスクに書き込んでいる現在のプロセスのみを表示したい場合は、「o」キーを押すと、次のような出力が得られます。

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

以下は、使用できる最も一般的なオプションの一部です。

  • ヒット 右矢印キー 並べ替えを変更します。
  • 打つ r 並べ替え順序を逆にします。
  • 打つ o すべてのプロセスまたはスレッドを表示するのではなく、実際にI/Oを実行しているプロセスまたはスレッドを表示するだけです。
  • 打つ p プロセスのみを表示します。 通常、iotopはすべてのスレッドを表示します。
  • 打つ a 帯域幅の代わりに累積I/Oを表示します。 このモードでは、iotopは、iotopが開始されてから実行されたI/Oプロセスの量を示します。
  • 打つ スレッドまたはプロセススレッド、つまりioniceの優先度を変更します。
  • 打つ q iotopを終了します。

詳細については、マニュアルページを参照してください。

The post Linuxでディスクに書き込んでいるプロセスを特定する方法–オタク日記 appeared first on Gamingsym Japan.