現在、IOパフォーマンスの問題により、現在のシステムで非常に遅いさまざまな開発作業を行っています。
IO消費操作中にパフォーマンス情報(書き込み/秒、読み取り/秒など)を含むディスク操作を記録し、それを新しいシステムで再生してパフォーマンスがどのようになるかを確認する方法はありますか?(同じデータセットに対して同じコマンドを再実行する必要はありません)?
会議ブロック追跡、ブロック解析またはペオこの状況で私を助けることができますか?
たとえば、私のシステムで以下を実行したいとします。
find -name "*.php" | xargs grep -r "test_string"
50,000個のファイルを含むフォルダ(もちろん複数のレベル)
統計を含むすべてのディスク操作をキャプチャしてから、50,000個のフォルダがない他のシステムでそれを再生したいと思います。デフォルトでは、タスクをシミュレートし、タスクがより早く完了することを確認してください。
以下を使用してディスクサンプルをキャプチャしようとしました。
blktrace -d /dev/sda -o myfile.blk
しかし、どうやって再生しようとしているのかわかりません。ペオ。
可能ですか?
ありがとう
答え1
カント。異なるハードウェアで同じタスクがどれくらいかかるかを確認するには、新しいハードウェアで同じタスクを実行する必要があります。
タスクをシミュレートするには、同じディスクセクタを読み書きすることに加えて、タスクがデータを読み取った後にデータに対して実行するすべてのタスクをシミュレートする方法を見つける必要があります。
答え2
fioを使用してファイルを再生するには、まずバイナリデータファイルblktrace
に変換する必要があります。blkparse
フェオのread_iolog
選択より多くの情報を知りたい場合(replay_redirect
役に立つかもしれません)。
メモ:fioを使用して書き込みを含む再生を再実行すると、再生されたファイル/ディスクのデータが削除されます。だから注意してください!