2016-10-28 10 views
0

fioを使用していくつかのブロックトレースを再生しようとしています。私はioengineとして「PSYNC」を使用し、iologを再生したい複数のスレッドでFIO再生をトレースする方法

[global] 
name=replay 
filename=/dev/md0 
direct=1 
ioengine=psync 

[replay] 
read_iolog=iolog.fio 
replay_no_stall=0 
write_lat_log=replay_metrics 
numjobs=1 

ここで重要なのは、次のとおりです。同じよう

は、私が書いたジョブファイルを検索します。 しかし、psyncでは、fioはiologのタイムスタンプを無視する "replay_no_stall"オプションを無視しているようです。

numjobsを4に設定すると、fioは4つのスレッドを使用してワークロードを分割するのではなく、同じワークロードを4つコピーするようです。

psyncでタイムスタンプを守り、複数のスレッドを使ってトレースを再生するにはどうしたらいいですか?

答えて

0

iolog自体の小さな問題のスニペットを見ることなく、なぜリプレイがいつもできるだけ速く進んでいるのかはわかりません。待ち時間がmilli秒であることに注意してください。後で有効にする必要がある場合は、iologの連続待ち時間を増やさなければなりません(ジョブ自体の開始位置を基準にしているため、以前のI/O )。詳細については、HOWTOの "Trace file format v2"のセクションを参照してください。この問題は、fioメーリングリストにとっては良い質問のように聞こえます(ただし、バグトラッカーに入れないでください)。

numjobs is documented as only creating clones in the HOWTOあなたの経験は文書化された動作と一致します。

悲しいことに現在再生中(2016年末)は、1つの再生ファイルを複数のジョブに任意に分割でき、複数のスレッド/プロセスを使用するために複数のジョブが必要になります。ジョブ間でI/O順序を失うことが気にならない場合は、iologを4つに分割し、新しいiologファイルのそれぞれを使用するジョブを作成することができます。

関連する問題