11

デュアル対クアッドコアの議論は、クアッドコア自体と同じくらい古く、答えは通常「シナリオによって異なります」です。したがって、ここでのシナリオは Web サーバー (Windows 2003 (x32 か x64 かは不明)、4 GB RAM、IIS、ASP.net 3.0) です。

私の印象では、リクエストは通常​​かなり軽量であるため、Web サーバーの CPU はそれほど高速である必要はありません。小さなリクエストが多数あるため、より多くの (より遅い) コアを使用する方が良い選択になるはずです。

しかし、私は IIS 負荷分散の経験があまりないので、間違った選択をしたことを知るためだけに多額のお金を使いたくないので、もう少し経験のある人がコメントしてもらえますか?遅いコアが多いか、速いコアが少ないか?

4

4 に答える 4

16

Web サーバーのようなものでは、各接続を処理するタスクを分割するのは (比較的) 簡単です。Web サーバーは、並列コードの最も一般的な (そして解決済みの) 用途の 1 つと言っても過言ではありません。また、多くの処理を複数の個別のスレッドに分割できるため、コア数が多いほど実際にメリットがあります。これが、共有ホスティングが可能な大きな理由の 1 つです。IIS や Apache などのサーバー ソフトウェアがリクエストを並行して実行できない場合、すべてのページ リクエストをキュー形式で処理する必要があり、ロード時間が耐えられないほど遅くなる可能性があります。

これは、Windows 2008 Server Enterprise などのハイエンド サーバー オペレーティング システムが 64 コアや 2TB の RAM などをサポートする理由でもあります。これらは、その多くのコアを実際に活用できるアプリケーションです。

また、各リクエストは CPU 負荷が低い可能性が高いため、(一部のアプリケーションでは) より低速なコアを使用しても問題を解決できる可能性があります。しかし、明らかに、各コアが高速になるということは、各タスクをより迅速に完了できることを意味し、理論的には、より多くのタスクとより多くのサーバー リクエストを処理できることを意味します。

于 2008-08-06T18:40:08.393 に答える
3

マーク・ハリソンは次のように述べています。

IIS の経験はあまりありませんが、同じシナリオがスレッド プールにも当てはまると思います。

確かに - より多くのコア = より多くのスレッドが同時に実行されます。IIS は本質的にマルチスレッド化されており、これを簡単に利用できます。

于 2008-08-06T18:40:39.813 に答える
3

Linux では apache を使用します。これは、リクエストを処理するプロセスをフォークします。実行キューに配置されるのを待っているプロセスのレイテンシーが減少するため、より多くのコアがスループットに役立つことがわかりました。IIS の経験はあまりありませんが、同じシナリオがスレッド プールにも当てはまると思います。

于 2008-08-06T18:33:50.530 に答える
1

多ければ多いほどよい。プログラミング言語がより複雑で抽象的になり始めるにつれて、より多くの処理能力が必要になります。

Atleat Jeff は、Quadcore の方が優れていると考えています。

于 2008-08-06T18:31:14.793 に答える