私はScalaでWebアプリケーションを開発しています。クライアントからのポート(JSONまたはProtoBufs)でデータを取得し、データベースサーバーを使用して計算を行い、クライアントにJSON/Protobufオブジェクトを返すシンプルなアプリケーションです。Java/Scalaリソースの消費とロード
非常に重いアプリケーションではありません。最大1000行のコードすべてのクライアント要求にスレッドが作成されます。リクエストを取得してから返信するまでの時間は、20〜40msです。
私はどのような種類のハードウェア/セットアップを使って1秒あたり3000件以上のリクエストを処理するべきかアドバイスが必要です。私は自分のデータセンターに置くためにハードウェアを調達する必要があります。
Javaアプリケーションを大規模に展開している経験がある方は、アドバイスをお願いします。私は32GBのRAMまたは複数の小さなマシンで2 - 4 Xeon 5500sと1つの大きなボックスを使用する必要があります。
更新 - 私たちは多くのクライアントを持っていません。そのうちの3 - 4個。リクエストはこれらの3人からのものになります。
まず、すべてのクライアントリクエストにスレッドを作成しないようにアプリを最適化します。スレッドプールを使用します。その後、測定し、実験してください。 –
SoapUIまたは類似のツールを使用して負荷を測定できます。このようにして、特定のタイプのマシンがアプリケーションに必要な負荷をどのように処理するかをテストできます。 –
更新情報を忘れていました。今私は、単一のソケットから複数の要求を取得するスレッドでHTTPパイプラインを使用しようとしています。スレッドの数が下がるはずです。 –