質問

このようにフレーム化させてください。.

"シングルコアIntelプロセッサで実行されているアプリケーションサーバーがあるとします。 200人の同時ユーザーにサービスを提供します。ハードウェアをデュアルコアシステムに移行することで、アプリケーションサーバーは約350人の同時ユーザーに対応できるようになります」

対処したい基本的な質問は、「余分なプロセッサコアを追加すると、サーバーのI / O機能を向上させることができます」です。なぜなら、ハードウェアベンダーがマルチコアサーバーを売り込むときに示唆することは、まさにそれだからです。

役に立ちましたか?

解決

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

メモリに縛られている場合は、メモリを追加購入するか、メモリの速いコンピュータを購入します。

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

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

ただし、通常は「構成の制限」を行い、構成を調整します。プール内のスレッド数などを変更すると、すぐに改善されます。

多くのウェブサーバーとデータベースは、追加のコアを活用するために作成されたソフトウェアです。もちろん、多くはコアごとにライセンス料も請求するため、その点も考慮してください。

他のヒント

メリットが得られる場合と得られない場合がありますが、CPUが実際にI / Oを行っていないので、タスクが主にI / Oにバインドされていることは大きなメリットは期待できません。

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

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

サーバーがシングルスレッド(選択ベースのIOを使用)で、リクエスト処理に副作用がない(つまり、概念的に並列化できる)場合、マルチコアマシンで複数のインスタンスを確実に実行(一致)すると、マシンの計算ユーティリティ。

これがより高いスループットに変換されるかどうかは、要求処理がCPUバウンドであったかどうかに依存します。経験則として、IOは分散システムの主要なボトルネックです。ただし、(要求)メッセージアセンブリに大量の計算が必要な場合、IOコストを超える特定のCPUオーバーヘッドが要求ごとに発生します。複数のcpusアシストがあると、明らかにその場合に違いが生じます。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top