...

Lotus Domino 6.x クラスタリング環境における サーバー可用性インデックス(SAI)の調整 IBM Software Group 日本アイ・ビー・エム株式会社

by user

on
Category: Documents
21

views

Report

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
Fly UP