私のIO統計が高いです。高度に書かれています。ところで、どのファイルに記録されていますか?

私のIO統計が高いです。高度に書かれています。ところで、どのファイルに記録されていますか?
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          11.50    0.02    5.38    0.07    0.00   83.04

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sdc               0.01    89.92    0.26   41.59     3.36   457.19    22.01     0.23    5.60   0.09   0.38
sdb               0.10    15.59    0.40   14.55     8.96   120.57    17.33     0.04    2.91   0.07   0.11
sda               0.13    45.37    0.96    8.09    20.06   213.56    51.63     0.02    2.64   0.16   0.14
sde               0.01    31.83    0.09   11.34     0.94   103.56    18.29     0.04    3.52   0.14   0.16
sdd               0.01    48.01    0.13   19.81     1.58   202.16    20.44     0.11    5.62   0.13   0.25

どのファイルに記録されているかを知る方法はありますか? 457KB/秒

さらに、このLinuxマシンにも同じ問題があります。

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          20.50    0.00   46.48   20.74    0.00   12.28

Device:         rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.17    11.61    0.99    3.51    36.65    59.43    42.70     0.10   23.20   3.84   1.73
sdb               0.55   224.18   24.30   97.45   246.48  1287.12    25.19     3.96   32.53   7.88  95.91
sdd               0.53   226.75   25.56   90.96   283.50  1271.69    26.69     3.43   29.44   8.22  95.75
sdc               0.00     1.76    0.28    0.06     4.73     7.26    70.41     0.00   12.00   2.12   0.07
dm-0              0.00     0.00    1.11   14.77    36.41    58.92    12.01     1.00   62.86   1.09   1.74
dm-1              0.00     0.00    0.04    0.12     0.17     0.49     8.00     0.00   21.79   2.47   0.04
dm-2              0.00     0.00    0.01    0.00     0.05     0.01     8.50     0.00    7.90   2.08   0.00

コンテンツをホストしていないサーバーの場合、1秒あたり1200の書き込み要求

答え1

RHEL6で私に効果的だった次のコマンドを試してみてください。

  1. 「iostat」出力でより多くのI / Oを実行しているデバイスを表示するたびに、次のfuserコマンド(psmiscパッケージ内)と一緒に使用してください。

    固定-UVMデバイス

  2. より多くのI / Oを生成するユーザー名を含むプロセスのリストが表示されます。これらのPIDSを選択し、lsof次のようにコマンドに使用します。

    lsof -p PID | lsof -p PID |

  3. ファイル/ディレクトリのリストと、最も多くのI / Oを実行しているユーザーのリストが表示されます。

答え2

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

iotop - プロセス I/O スループットを表示する top/iftop に似たユーティリティです。

I/O が多いプロセスを確認したら、次のコマンドを使用してどのファイルが使用されているかを確認します。

lsof -c <process name>

これにより、範囲が狭くなり、ソースを正確に見つけるのに役立ちます。

答え3

inotifywaitfromを使用すると、どの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'.

答え4

csysdig。 https://github.com/draios/sysdig/wiki/Csysdig-overview

これを行う方法を示すビデオリンクも提供します。 https://www.youtube.com/watch?v=UJ4wVrbP-Q8

関連情報