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で私に効果的だった次のコマンドを試してみてください。
「iostat」出力でより多くのI / Oを実行しているデバイスを表示するたびに、次の
fuser
コマンド(psmisc
パッケージ内)と一緒に使用してください。固定-UVMデバイス
より多くのI / Oを生成するユーザー名を含むプロセスのリストが表示されます。これらのPIDSを選択し、
lsof
次のようにコマンドに使用します。lsof -p PID | lsof -p PID |
ファイル/ディレクトリのリストと、最も多くのI / Oを実行しているユーザーのリストが表示されます。
答え2
ファイルを使用するプロセス内以外には、各ファイルの I/O スループットを調べるツールがないようです。ただし、プロセス I/O スループットを調べる方法はいくつかあります。
iotop - プロセス I/O スループットを表示する top/iftop に似たユーティリティです。
I/O が多いプロセスを確認したら、次のコマンドを使用してどのファイルが使用されているかを確認します。
lsof -c <process name>
これにより、範囲が狭くなり、ソースを正確に見つけるのに役立ちます。
答え3
inotifywait
fromを使用すると、どの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