Lotus Domino 6.x クラスタリング環境における サーバー可用性インデックス(SAI)の調整 IBM Software Group 日本アイ・ビー・エム株式会社
by user
Comments
Transcript
Lotus Domino 6.x クラスタリング環境における サーバー可用性インデックス(SAI)の調整 IBM Software Group 日本アイ・ビー・エム株式会社
® IBM Software Group Lotus Domino 6.x クラスタリング環境における サーバー可用性インデックス(SAI)の調整 日本アイ・ビー・エム株式会社 ソフトウェア事業 Lotusテクニカル・セールス IBM Software Group | Lotus software はじめに 本資料の記載内容は、正式な IBM のテストやレビューを受けておりません。内容につ いて、できる限り正確を期すよう努めてはおりますが、パフォーマンス測定結果を含め 一切の保証をするものではありませんので、予めご了承下さい。本資料の情報は、使 用先の責任において使用されるべきものであること、あらかじめご了承ください。 掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事 はご遠慮ください。 本資料の著作権は日本アイ・ビー・エムにあります。非営利目的の個人利用の場合に おいて、自由に使用してもかまいませんが、営利目的の使用は禁止させていただきま す。 この資料は単独ページでの配布、使用を禁止します。全ページをセットで配布、ご利 用ください。 IBM、AIX、WebSphere、は IBM Corporation の商標。 Lotus、Lotus Domino、Lotus Notesは、IBM-Lotus の商標。 その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。 IBM Software Group | Lotus software サーバー可用性インデックス(SAI)とは? クラスタリング環境にあるDominoサーバーの相対的な負荷(可 用性)を示す指数 「SAI」は「Server Availability Index」の略称 Notesクライアントに対する負荷分散(ロード・バランシング)機能の 重要な指標 • • 自サーバーの可用性ステータス(Available もしくは Busy)を決定 同一クラスターに属しているサーバー間において、お互いの負荷状況 を定期的に把握し、リダイレクト先サーバーを決定 システム管理ヘルプ「サーバー可用性インデックス」より抜粋 クラスタ内の各サーバーは、サーバーが最近処理した要求の応答時間 を基にして、自身のワークロードを定期的に決定します。ワークロードは 0 から 100 までの数値で表現します。0 は負荷が重いサーバーを示し、 100 は負荷が軽いサーバーを示します。この数値をサーバー可用性イ ンデックスといいます。 IBM Software Group | Lotus software 基礎数値となる「拡張係数」 (1) サーバーの内部的な処理時間によって「拡張係数(Expansion Factor)」が決定 代表的なトランザクションの処理に要した「時間」であって、トランザ クションの「数」そのものではありません 過去の「最短の処理時間」と「最新の処理時間」との比率を示す システム管理ヘルプ「サーバー可用性インデックス」より抜粋 たとえば、サーバーが「データベースを開く」トランザクションを実行す るのに現在平均 12 マイクロ秒かかっているとします。過去同じトラン ザクションを実行したときの最短時間が 3 マイクロ秒であった場合、 「データベースを開く」トランザクションの拡張係数は 4 になります (現 在の時間 12 マイクロ秒を最短時間 3 マイクロ秒で割った数値)。 IBM Software Group | Lotus software 基礎数値となる「拡張係数」 (2) 「拡張係数」は約15秒間隔で算出される 統計情報「Server.ExpansionFactor」で確認が可能 「最短処理時間」は「loadmon.ncf」ファイルに記録され、再起動後も 利用される • loadmon.ncfファイルの例 OPEN_DB = 934.857142857143 CLOSE_DB = 105.428571428571 GET_NOTE_INFO = 162.79 OPEN_NOTE = 346.4 READ_OBJECT = 165.5 NIF_OPEN_NOTE = 3000000 GET_OBJECT_SIZE = 266.4 DB_INFO_GET = 132.25 DB_REPLINFO_GET = 128.909599254427 DB_READ_HIST = 3000000 DB_WRITE_HIST = 3000000 GET_SPECIAL_NOTE_ID = 146.909090909091 SERVER_AVAILABLE_LITE = 3000000 IBM Software Group | Lotus software 拡張係数とサーバー可用性インデックスの関係 デフォルトの状態では、拡張係数「64」を最大値として、サーバー 可用性インデックスが算出される 拡張係数とサーバー可用性インデックスの関係 (デフォルトの状態) 100 サーバー可用性インデックス(SAI) 90 80 70 60 50 40 30 20 10 0 0 10 20 30 40 拡張係数(ExpansionFactor) 50 60 IBM Software Group | Lotus software 拡張係数「64」は最大値として適切? 拡張係数の最大値が「64」であることは… そのサーバーでの「許容する処理時間」を「最短の処理時間」の64 倍までとすることを意味します ハードウェアの処理能力に応じて変更する必要がある システム管理ヘルプ「サーバー可用性インデックス」より抜粋 サーバーの速度、処理能力、容量が異なれば、処理が可能な負荷も 異なります。このため、2 つのサーバーの拡張係数が同じであっても、 サーバーの能力に対する負荷は異なる場合があります。たとえば、 サーバーが他には何もしていない場合でも、小さなサーバーではトラ ンザクションの実行に長い時間がかかり、拡張係数 40 は、応答まで かなりの秒数がかかることを意味します。一方、非常に大きな高速 サーバーでは、拡張係数 400 は応答まで 1 秒もかからないことを示し ます。 IBM Software Group | Lotus software 拡張係数の最大値設定が適切でない場合の影響 デフォルトの「64」が高すぎる場合 ハードウェア性能が低い、比較的昔のサーバー環境が該当 「最短の処理時間」が大きいために、その64倍の処理時間を応答時間とし て考えると、数秒∼数十秒という劣悪な状態である可能性がある そのため、応答時間が悪い負荷状況であっても「Busy」ステータスにならず、 他のサーバーとのロードバランスが機能しない デフォルトの「64」が低すぎる場合 ハードウェア性能が高い、最近のサーバー環境が該当 「最短の処理時間」が小さく、その64倍の処理時間を応答時間として考えて も、1秒未満の快適な状態である可能性がある そのため、応答時間が良い状態であっても「Busy」ステータスになってしま い、予期しないロードバランスが発生する IBM Software Group | Lotus software 拡張係数の最大値調整 NOTES.INIパラメータ 「Server_Transinfo_Range」を利用 このパラメータで指定した数値の2の累乗した値が設定される • • デフォルトの拡張係数「64」は、「Server_Transinfo_Range=6」と同じ 6.0.1 CF3、6.0.2 CF2、6.0.3以降、6.5.x で利用可能 最適値の決定ガイド • システム管理ヘルプ「サーバー可用性インデックス」より抜粋 SERVER_TRANSINFO_RANGE の最適値を決定するには、次の操作を実 行します。 1. 負荷が大きいときに、サーバー上の拡張係数をモニターします。コン ソールコマンド show stat server.expansionfactor を使用してこれを 実行できます。この間に、パフォーマンス統計もモニターできます。負 荷が大きいときの拡張係数の値を多数記録し、サーバーが最大負 荷に達したことを示す拡張係数の値を決定します。 2. 2 の SERVER_TRANSINFO_RANGE 乗が手順 1 で選択した拡張係 数の値となるよう、SERVER_TRANSINFO_RANGE の値を決定します。 IBM Software Group | Lotus software Server_Transinfo_Range設定と拡張係数の最大値 Notes.iniパラメータ「Server_Transinfo_Range」の設定による サーバーの可用性限界値の調整 Server.ExpansionFactor 許容限界値 2500 2000 1500 1000 500 0 0 2 4 6 8 Server_Transinfo_Range 設定値 10 12 IBM Software Group | Lotus software 実際に「Server_Transinfo_Range」を設定するために 本番稼動する前であれば、サーバー環境に応じた「最短の処理時間」を おおまかに把握する 記録されている「loadmon.ncf」ファイルの処理時間(マイクロ秒)を確認する • 大規模に負荷テストをする必要もなく、単一ユーザーで実際にアクセスしてみる クライアント側での「応答時間」の許容範囲を決定する その許容範囲に応じてサーバーの内部処理時間を推測し、拡張係数の許 容範囲を決定する 本番稼動済みのサーバーであれば、ピーク時間帯に記録される「拡張係 数」で決定する もちろん「loadmon.ncf」ファイルの記録値も参考になります 【注意】プラットフォームのCPU使用率は、この許容範囲を設定する指標 として適切ではありません IBM Software Group | Lotus software 参考)ある環境での測定結果 サーバー環境 CPU • :Intel Pentium Xeon 2.4GHz 2-way Hyper-Threadingを有効 メモリ :4GB 外部ディスク :FAStT600 Turbo • 73GB 15Krpm Fibre Channnel HDD 3本 (RAID 5:2D+1P) ソフトウェア環境 Windows 2000 Server SP4を適用 Lotus Domino 6.5.1 Lotus Notesクライアントでのメール利用シナリオでの測定 テスト結果から上記のサーバー環境での推奨される初期値 「Server_Transinfo_Range=10」、つまり拡張係数「1024」 IBM Software Group | Lotus software 参考)テストで得られた拡張係数と応答時間の関係 拡張係数とツールでの平均応答時間との関係 (拡張係数は一時点での値、応答時間は直近1分間の平均値) 4000 3500 3000 2500 2000 1500 1000 500 0 0 200 400 600 800 1000 同時実行ユーザー数 拡張係数 1200 平均応答時間(ミリ秒) 1400 1600 1800 IBM Software Group | Lotus software 参考)このテスト環境での「loadmon.ncf」ファイル OPEN_DB = 553.666666666667 CLOSE_DB = 53.8 GET_NOTE_INFO = 124.857142857143 OPEN_NOTE = 228.833333333333 READ_OBJECT = 172.8 NIF_OPEN_NOTE = 475.6 GET_OBJECT_SIZE = 328.2 DB_INFO_GET = 3000000 DB_REPLINFO_GET = 91.4 DB_READ_HIST = 3000000 DB_WRITE_HIST = 3000000 GET_SPECIAL_NOTE_ID = 107.666666666667 SERVER_AVAILABLE_LITE = 3000000