並列トランザクションの場合の CPU のサイズ設定

データ・グリッドが拡張するにつれ、単一区画トランザクションのスループットが直線的に増加します。 並列トランザクションは、サーバーの集合 (これはすべてのサーバーの可能性があります) にタッチするので、単一区画トランザクションとは異なります。

トランザクションがすべてのサーバーにタッチする場合、スループットは、トランザクションを開始したクライアントまたはタッチされた最低速のサーバーのスループットに制限されます。データ・グリッドが大きくなれば、データはより広く分散され、提供されるプロセッサー・スペース、メモリー、ネットワークなどが拡張されます。ただし、クライアントは最低速のサーバーの応答を待たなければならなくなり、クライアントはトランザクションの結果を消費しなければならなくなります。

トランザクションがサーバーのサブセットにタッチする場合、N 個のサーバーのうちの M 個が要求を受け取ります。この結果、スループットは、最低速のサーバーのスループットより、N/M 倍した分だけ速くなります。例えば、20 のサーバーがある場合に、トランザクションが 5 つのサーバーにタッチすると、スループットは、データ・グリッド内の最低速のサーバーのスループットを 4 倍したものになります。

並列トランザクションが完了すると、結果がそのトランザクションを開始したクライアント・スレッドに送信されます。ここでこのクライアントは、単一スレッド化された結果を集約する必要があります。トランザクションでタッチされるサーバーの数が増えると、この集約時間が増加します。ただし、データ・グリッドが拡大すると、各サーバーが戻す結果が小さくなる可能性もあるので、この時間はアプリケーションに依存します。

一般的には、グリッド全体で区画が均等に配分されるので、並列トランザクションはデータ・グリッド内のすべてのサーバーにタッチします。この場合、スループットは、最初の事例に制限されます。

要約

このサイズ設定により、以下の 3 つのメトリックが得られます。 メモリー所要量に対して 10 個のサーバーが必要であるが、プロセッサーが飽和状態であるため必要とするスループットの 50% しか得られない場合、2 倍の数のサーバーが必要になります。

最高の安定度を実現するために、60% のプロセッサー負荷でサーバー、さらに 60% のヒープ負荷で JVM ヒープを稼働してください。スパイクでプロセッサー使用量を 80% から 90% の間に引き上げることができますが、通常はこのレベルより高いレベルでサーバーを稼働しないようにしてください。