GNU/Linux >> Linux の 問題 >  >> Linux

高いioステータスを持っています。ハイライト。しかし、どのファイルが書き込まれているのでしょうか?

さて、RHEL6 で機能した次のコマンドを試すことができます:

1) 「iostat」出力でより多くの I/O を実行しているデバイスが何であれ、fuser で使用します。 コマンドは次のとおりです:

fuser -uvm device

2) より多くの I/O を引き起こしているユーザー名を持つプロセスのリストを取得します。それらの PIDS を選択し、lsof で使用します コマンドは次のとおりです:

lsof -p PID | more

3) 最大 I/O を実行しているユーザーとともに、ファイル/ディレクトリのリストを取得します。


ファイルを使用するプロセス内以外で、ファイルごとの I/O スループットを調べるツールはないようです。ただし、プロセス I/O スループットを調べる方法はあります。

iotop - プロセスの I/O スループットを表示する top/iftop のようなユーティリティです。

I/O が重いプロセスを特定した後、以下を使用して、どのファイルが使用されているかを調べます

lsof -c <process name>

これにより範囲が絞り込まれ、ソースを特定するのに役立ちます。


inotifywait を使用できます inotify-tools から どのファイルに書き込まれているのかを正確に知るために。書き込まれているデータの量はわかりませんが、少なくともどのファイルに書き込まれているのかがわかります。

例として、このコマンドは /tmp で作成、変更、または削除されるとすぐにファイル名を出力します。 :

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /tmp
Setting up watches.  Beware: since -r was given, this may take a while!
Watches established.
/tmp/ CREATE test
/tmp/ MODIFY test

残念ながら、書き込み先のファイルが含まれるディレクトリを推測する必要があります。ルート ディレクトリで使用しようとすると失敗しますが、オーバーライドできるようです:

$ sudo inotifywait -e modify -e attrib -e move -e create -e delete -m -r /
Setting up watches.  Beware: since -r was given, this may take a while!
Failed to watch /; upper limit on inotify watches reached!
Please increase the amount of inotify watches allowed per user via `/proc/sys/fs/inotify/max_user_watches'.

Linux
  1. グループにユーザーを追加しましたが、ファイルに対するグループのアクセス許可はまだ効果がありませんか?

  2. 開いているが削除された大きなファイルを見つけて削除しますか?

  3. Nトップに相当しますが、ネットワークI / Oの場合は?

  1. 7zip、Xz、Gzip、Tarなど—違いは何ですか?

  2. 高I/Oインスタンスのフラッシュドライブをデータドライブとして構成する

  3. Linux のスパース ファイルとは

  1. シェルコマンドは何語で書かれていますか?

  2. Registered I/O に相当する Unix/Linux は何ですか?

  3. Linuxカーネルヘッダーとは正確には何ですか?