2017-02-23 4 views
0

スレッドプールのサイズを決定する際の待ち時間と実行時間が正確であるかどうかの簡単な例を見つけようとしています。ブライアン・ゲッツによると:完了するために、I/Oを待つことができるタスクの場合Treadpool:プールのサイズを決定するための待機時間と実行時間の簡単な例

- 例えば、ソケットからHTTPリクエストを読み込むタスク - あなたは超えて プールのサイズを大きくすることになるでしょう使用可能なプロセッサの数は、 ではないため、すべてのスレッドが常に動作します。プロファイリングを使用すると、 典型的な要求 の待機時間(WT)とサービス時間(ST)の比率を見積もることができます。私たちがこの比WT/STをNプロセッサー システムの場合、 プロセッサーを完全に使用されるようにするにはN *(1 + WT/ST)のスレッドが必要です。

私は実際に彼が入力/出力を意味しているのか分かりませんでした。誰がI/Oタスクを実行しているか。

答えて

1

ディスクからデータを読み取るタスクを想像してください。実際に何が起こるか:

  1. ファイルを開きます。
  2. (回転する)ディスクがスリープ状態から復帰するのを待って、ヘッドを正しい場所に配置し、すべてのバイトがバッファに到着するまで、ヘッドの下に希望のブロックが表示されるようにします。
  3. バッファから読み出します。

タスク全体が完了するまでに0.1秒かかります。この0.1秒のうち10%は手順1と3に費やされ、残りの90%は手順2に費やされます。したがって、0.01秒は「作業時間」と0.09秒の「待機時間」で、ディスクの待機に費やされます。

関連する問題