2009-05-07 20 views
0

は今提供するために自分のアプリケーション・サーバーを使用可能マルチコアの利点は何ですか?

は「私は200の同時ユーザーにサービスを提供するシングルコアのIntelプロセッサ&上で実行しているアプリケーションサーバーを持っていると言う。ウィルは、デュアルコアシステムにハードウェアを動かす..私はそれをこのようにフレームみよう350人の同時ユーザーと言えますか?

私が取り組んでいる基本的な質問は、「余分なプロセッサコアを追加すると、サーバーのI/O機能を向上させることができます」ということです。ハードウェアベンダーがマルチコアサーバーを宣伝する際に何を示唆しているのか正確に判断する必要があるためです。

答えて

3

サーバーのプロファイルを作成し、サーバーのボトルネックを特定し、処理する必要があります。

メモリにバインドされている場合は、より多くのメモリを購入するか、より高速なメモリを搭載したコンピュータを購入してください。

ディスクにバインドされていて静的なコンテンツを提供している場合は、SSDドライブを検討してください。

データベースがバインドされている場合は、それを考慮してください。

通常、あなたは「設定が束縛されています」と設定を調整しています。プール内のスレッド数を変更するなどして、すぐに改善することができます。

多くのWebサーバーとデータベースは、まさに余分なコアを利用するために書かれたソフトウェアです。もちろん、コアあたりのライセンス料も多く課金されるので、その点も考慮してください。

0

もちろん、アプリケーションサーバーの作成方法によって異なります。ソフトウェアがどのような並列プログラミング技術も使用していない場合、ハードウェアがそのようにサポートしていても、パラレルで実行することはできません。

1

利点はあるかもしれませんが、CPUがI/Oを実際に行っていないため、重要な利点は期待できません。主にI/O境界です。

編集:私の答えは、あなたのコードは実際に複数のコアを利用していると書かれているものとします。そうでない場合、アプリケーションは追加のコアの恩恵を受けることはありませんが、マシンは他の同時タスクに対応できるようになるでしょう。

0

サーバがシングルスレッド(選択ベースのIOを使用)であり、要求処理が副作用がない(つまり概念的に並列化できる)場合、マルチコアマシン上の複数のインスタンスを確実に実行(マッチング)機械の計算上の有用性。

これがスループットを向上させるかどうかは、要求処理がCPUバインドであったかどうかによって異なります。経験則として、IOは分散システムにおける主要なボトルネックです。しかし、(要求)メッセージのアセンブリにかなりの計算が必要な場合は、IOコストを超える要求あたりの特定のcpuオーバーヘッドがあります。この場合、複数のcpusアシストを使用することで明らかに違いがあります。

プロトコルレベルを超えて、明らかに各要求の処理に大きな計算が必要な場合は、CPUのボトルネックがサーバーの可用性に影響します。複数のCPUを使用すると明らかに役立ちます。

関連する問題