2012-03-22 9 views
1

私は、SATAディスクを持つLinuxボックスで同期読み取りパフォーマンスをベンチマークしていました。私はgettimeofday(2)でそれぞれの読んだコールをタイムアウトし、プログラムが実行されているときにディスクの統計情報を見るためにiostat -xを解雇しました。待ち行列上のiostatで示されるディスクIO時間は平均約8msecであったが、プログラムによって与えられた読み出し時間は平均約12msecであった。これらの4msecはどこで使えますか?Linuxでのread(2)呼び出しがディスクIOに費やされる時間よりも数ミリ秒多く費やされるのはなぜですか?

+0

'gettimeofday'はパフォーマンスのタイミングを行う最善の方法ではないことに注意してください。 ntpd。 http://stackoverflow.com/questions/88/is-gettimeofday-guaranteed-to-be-of-microsecond-resolution –

+0

良いリンクを参照してください。ありがとう。 – Utoah

+0

Stack Overflowで以前と同じようにテストポストを作成しないでください。そうすることで、さらにモデレータの行動につながる可能性があります。 – casperOne

答えて

0

メモリのコピー、コンテキストスイッチの実行、および他のプロセスの実行。

他のプロセスは、読み取りが開始される前または完了後にスケジュールされて実行され、プロセスが認識する時間が延長されます。

+0

おかげさまで、CPUがベンチマーク時にビジー状態ではないため、あなたが言及したことは、数msecのコストを要しません。 – Utoah

関連する問題