2012-02-18 6 views
1

スレッドに関して少し混乱しています。私はファイルサーバーを持っていて、それがN個のCPUで構成されている場合、サーバーパフォーマンスを最大限に引き出すためにユーザーモードスレッドの最大数を設定する必要があります。他のプロセスはスレッドに干渉しません。まあ私の意見では、1つのスレッドあたりのCPUが1つあれば十分でしょう。なぜなら私たちがそれ以上発動すれば、I/O操作が完了するのを待たなければならないからです。スレッドをさらに作成すると、リソースが浪費され、他のスレッドが終了するまでブロックされます。私たちが別のパーティションや別のドライブにファイルを読み込んだり、ファイルを書き込もうとしたら、新しいスレッドを生成できるかどうかはわかりません。あなたの意見を共有できますか?最大出力に最適なスレッド数

答えて

2

CPUスループットに最適なスレッド数は、正確に名前を付けた理由で、CPU数とまったく同じです。 (これは、ハイパースレッドが画像にもたらすファンシーな「部分的な」コアではより複雑になりますが、基本的なルールはまだまだ保持されます)。

現実世界では、追加スレッドを持つプロセスは、CPU処理とI/O処理を効果的にオーバーラップさせるのに役立ちます。

+0

同期または非同期のI/O操作について言及する必要がありますか?追加のスレッドがCPU処理とI/O処理のオーバーラップを助けることができるということについて、もっと教えてください。 – bokarinho

+1

つまり、文字通り、あなたのコードがメモリ、ディスク、ネットワークなど、I/Oのブロック操作をCPUよりも多く使用すると、元のスレッドがブロックされている間に有用な作業を進める可能性があります –

関連する問題