過去のナビゲーションリンクのスキップSecure Global Desktop 4.40 管理者ガイド > アレイ、サーバー、負荷分散 > アプリケーションの負荷分散の設定

アプリケーションの負荷分散の設定

アプリケーションの負荷分散は、特定のアプリケーションのパフォーマンスを最適化するためのアプリケーションサーバーを選択することが目的です。アプリケーションを起動するときに、アプリケーションオブジェクトの「ホストしているアプリケーションサーバー」タブに指定されているアプリケーションサーバーを使用して、アプリケーションサーバーの候補リストが作成されます。次に、これらのうちユーザーにもっとも適した候補が決定されます。このとき、次の点が考慮されます。

このページでは、これらの項目および SGD の設定がアプリケーションサーバーの選択にどのように影響するかについて説明します。

アプリケーションサーバーが使用できるかどうか

アプリケーションが起動するときに、アプリケーションサーバーの候補リストの中で、現在使用できないサーバーがあるかどうかが確認されます。使用できないアプリケーションサーバーは、リストから削除されます。

Secure Global Desktop 管理者 は、SGD Administration Consoleでアプリケーションサーバーオブジェクトの「一般」タブの「アプリケーション起動」チェックボックスを選択解除することにより、そのアプリケーションサーバーを使用不可として指定することができます。この作業は、アプリケーションサーバーの保守中にアプリケーションサーバーを使用できない状態にする場合などに行います。

SGD Advanced Load Management を使用している場合は、負荷分散サービスから SGD に定期的に keep alive パケットが送信されます。これらのパケットが停止したアプリケーションサーバーについては接続が切断されていると見なされ、負荷分散サービスが接続を再度確立するまで使用できないサーバーとして処理されます。

負荷分散グループ

負荷分散グループは、SGD サーバーとアプリケーションサーバーをまとめてグループ化するために使用します。ユーザーがアプリケーションを実行すると、SGD は、そのアプリケーションサーバーと同じグループにある SGD サーバー上でプロトコルエンジンを稼働させることを試みます。この処理は、グループ内のすべてのアプリケーションサーバーと SGD サーバーが高速リンクで接続されている場合に最適に機能します。

詳細は、「負荷分散グループ」を参照してください。

サーバーアフィニティー

アプリケーションの起動時には、そのユーザーがいずれかのアプリケーションサーバー上でほかのアプリケーションをすでに実行中であるかどうかが考慮されます。この作業は、サーバーアフィニティーと呼ばれます。サーバーアフィニティーとは、ユーザーが最後に起動したアプリケーションと同じアプリケーションサーバー上で、アプリケーションを起動しようとすることです。

サーバーアフィニティーが有効に機能するには、アプリケーションが同じアプリケーションサーバーセットに関連付けられている必要があります。

サーバーアフィニティーはパーセントで表現されます。現在設定できる値は次の 2 つだけです。

サーバーアフィニティーの値を変更するには、次のコマンドを実行します。

過去のコマンド構文またはプログラムコードのスキップ$ tarantella config edit --tarantella-config-applaunch-appserveraffinity affinity_value

Windows アプリケーションを使用している場合、この値を変更することはお勧めしません。これは、複数のアプリケーションサーバーを使用する場合に、問題 (特にローミングプロファイルの問題) が発生するためです。また、同じアプリケーション群に属する複数のアプリケーションを互いに異なるサーバー上で実行すると、ライセンスの問題が発生することがあります。

アプリケーションサーバーの相対的な処理能力

SGD では、アプリケーションサーバーの相対的な処理能力を考慮して、アプリケーションの起動場所を決定できます。

相対的な処理能力は、パーセントで表現されます。デフォルトでは、すべてのサーバーに値 100 が割り当てられます。サーバーの weighting 負荷分散プロパティーを編集してその負荷係数を増減すると、SGD によってアプリケーションサーバーが選択される可能性を増減できます。これを使って次の操作を実行できます。

負荷係数の使用方法の詳細については、以降のセクションの負荷計算を参照してください。

例 1

2 つのアプリケーションサーバー london および paris が動作しています。paris の負荷係数は 50 で、 london の負荷係数は 100 です。その他のアプリケーション起動条件がすべて満たされていて、現時点でサーバーの負荷が同じ場合には、アプリケーションを起動するために選択される可能性は london の方が高くなります。

例 2

100 個のアプリケーションサーバーが動作していて、その中の 1 つだけを「より強力な」サーバーとして割り当てるとします。そのサーバーの負荷係数を 200 に増やします。

もっとも負荷の少ないアプリケーションサーバー

SGD では、もっとも負荷の少ないアプリケーションサーバーを選択する方式がいくつかサポートされています。

デフォルトの方式は、SGD Administration Console の「グローバル設定」»「パフォーマンス」タブで設定します。アプリケーションオブジェクトの「パフォーマンス」タブに異なる方式を指定することで、デフォルトを上書きできます。この方法を利用すれば、アプリケーションの負荷分散をさまざまな方法で行うことができます。

アプリケーションの負荷分散の方式として、次のものがサポートされています。

「最小 CPU 使用量」方式および「最大空きメモリー」方式では、ユーザーがアプリケーションを起動した時点のアプリケーションサーバーの実際の負荷が計算されます。これは Advanced Load Management と呼ばれます。Advanced Load Management を使用するには、すべてのアプリケーションサーバーに Sun Secure Global Desktop Enhancement Module がインストールされ、稼働している必要があります。Sun Secure Global Desktop Enhancement Module には負荷分散サービスが含まれています。このサービスは、アプリケーションサーバーの CPU やメモリーの負荷に関する情報を SGD にリアルタイムで提供します。また、これは、アプリケーションサーバーが使用可能かどうかを SGD が容易に検出できるようにもします。たとえば、リブートする場合などです。

Advanced Load Management で負荷を分散できるのは、Windows、X、および文字型アプリケーションだけです。

最少アプリケーションセッション数

「最少アプリケーションセッション数」方式を使用した場合は、実行中のアプリケーションセッションがもっとも少ないアプリケーションサーバーが選択されます。この選択は、SGD から運用しているアプリケーションセッション数のみに基づいて行われます。

これはデフォルトの方式です。

アプリケーションの起動時にアレイからアプリケーションサーバーの負荷情報を取得できないなどの理由で、Advanced Load Management の使用で問題が発生した場合は、代わりに「最少アプリケーションセッション数」方式が使用されます。こうした状況は、プライマリ SGD サーバーを再起動しているときなどに発生することがあります。

アプリケーションサーバーの負荷計算には、次の数式が使用されます。

過去のコマンド構文またはプログラムコードのスキップnumber of application sessions x 100 /server weighting

計算例

現在、アプリケーションサーバー london では 10 個のアプリケーションセッションが動作しています。負荷係数値は 100 です。

現在、アプリケーションサーバー paris では 12 個のアプリケーションセッションが動作しています。負荷係数値は 100 です。

london の負荷値は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ10 x 100/100 = 10

paris の負荷値は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ12 x 100/100 = 12

その他のアプリケーション起動条件が満たされている場合は、それ以降の 2 つのアプリケーションセッションの起動に london が使用されます。london のサーバー負荷係数値を 50 に下げた場合、london の負荷は 20 (10 x 100 / 50) になるため、それ以降の 8 個のアプリケーションセッションの起動には paris が選択されます。

最小 CPU 使用量

「最小 CPU 使用量」方式を使用した場合は、CPU アイドル時間のもっとも長いアプリケーションサーバーが選択されます。この方式は、プロセッササイクルを大量に必要とするアプリケーションに適しています。

この方式では、アプリケーションサーバーの負荷が CPU 性能 (単位は BogoMips) および CPU 使用量に基づいて測定されます。測定は、負荷分散サービスが行います。

使用可能な容量の計算には、次の数式が使用されます。

過去のコマンド構文またはプログラムコードのスキップ(BogoMips x CPU idle %) x weighting /100

計算例

アプリケーションサーバー london の CPU 性能は 500 BogoMips、サーバー負荷係数値は 75、CPU アイドル率は 25% です。

アプリケーションサーバー paris の CPU 性能は 100 BogoMips 、サーバー負荷係数値は 100、CPU アイドル率は 50% です。

london の使用可能な容量は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ(500 x 25) x 75/100 = 9375

paris の使用可能な容量は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ(100 x 50) x 100/100 = 5000

その他のアプリケーション起動条件が満たされている場合は、paris の方が CPU 使用率が低く、サーバーの負荷係数値が高くても、london がアプリケーションサーバーとして選択されます。

最大空きメモリー

「最大空きメモリー」方式を使用した場合は、空き仮想メモリー容量のもっとも多いアプリケーションサーバーが選択されます。この方式は、大量のメモリーを必要とするアプリケーションに適しています。

この方式では、アプリケーションサーバーの実仮想メモリーと現在使用中のメモリー容量を比較して、アプリケーションサーバーの負荷が測定されます。測定は、負荷分散サービスが行います。

使用可能な容量の計算には、次の数式が使用されます。

過去のコマンド構文またはプログラムコードのスキップvirtual memory free x weighting /100

計算例

アプリケーションサーバー london のサーバー負荷係数値は 100、仮想メモリーの空き容量は 250M バイトです。

アプリケーションサーバー paris のサーバー負荷係数値は 75、仮想メモリーの空き容量は 500M バイトです。

london の使用可能な容量は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ250 x 100/100 = 250

paris の使用可能な容量は、次のとおりです。

過去のコマンド構文またはプログラムコードのスキップ500 x 75/100 = 375

その他のアプリケーション起動条件が満たされている場合は、paris がアプリケーションサーバーとして選択されます。

関連トピック