...

IBM Notes/Domino 問題判別

by user

on
Category: Documents
768

views

Report

Comments

Transcript

IBM Notes/Domino 問題判別
IBM Notes/Domino 問題判別
日本アイ・ビー・エム システムズ・エンジニアリング 株式会社
宮田 学
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
特記事項
本資料の記載内容は、正式な IBM のテストやレビューを受けておりません。内容について、でき
る限り正確を期すよう努めてはおりますが、いかなる明示または暗黙の保証も責任も負いかねま
す。本資料の情報は、使用先の責任において使用されるべきものであることを、あらかじめご了
承ください。
掲載情報は不定期に変更されることもあります。他のメディア等に無断で転載する事はご遠慮く
ださい。
本資料の著作権は日本アイ・ビー・エム システムズ・エンジニアリング株式会社にあります。非営
利目的の個人利用の場合において、自由に使用してもかまいませんが、営利目的の使用は禁止
させていただきます。
IBM、
IBM、AIX、
AIX、WebSphere、
WebSphere、は IBM Corporation の商標。
Lotus、
Lotus、Lotus、
Lotus、Lotus Workplace Messaging、
Messaging、Lotus Enterprise Integrator、
Integrator、Lotus Enterprise Script
Builder、
Builder、Lotus Domino Unified Communications Service、
Service、Lotus Instant Messaging/Web
Conferencing、
Conferencing、Lotus Team Workplace、
Workplace、Lotus Workplace Team Collaboration、
Collaboration、Lotus Learning
Management System、
System、Lotus Virtual Classrooom、
Classrooom、Lotus LearningSpace、
LearningSpace、Lotus Workplace
Collaborative Learning、
Learning、Lotus Domino Document Manager、
Manager、Lotus Discovery Server、
Server、Lotus
Extended Search、
Search、Lotus Workplace Web Content Management、
Management、Lotus Workflow、は
Workflow、は IBMIBM-Lotus
の商標。
その他、記載された社名および製品名は、それぞれ各社の商標または登録商標です。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
このセッションの目的
Lotus Notes/Dominoを運用中、問題が発生した際に、早期に問題を解決する
を運用中、問題が発生した際に、早期に問題を解決する
– サポートと会話できるように用語を覚える
– サポートに問い合わせる際に必要な情報を収集できるように
• 「Lotus Notes/Domino 問題判別ガイド」
http://www.ibm.com/support/docview.wss?uid=swg21585952
– 運用担当者自身で可能な範囲の問題判別を行えるように
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
問題判別とは
問題判別とは
– 発生している問題について以下を突き止めるプロセス
• どのような問題が起こっているのか?
• その問題を引き起こした原因はなにか?
基本的な手順
– 問題の種類、発生箇所の分析
– 原因の究明、取得したログやトレースの分析
– 再現手順の調査
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
問題判別の手順
問題発生
問題の種類
発生箇所の分析
影響範囲の確認
単体サーバー
複数サーバー
障害範囲
インフラ/NWなどを
確認
ログ確認
クラッシュ
原因の究明
ログ分析
クラッシュ?
NSD有無
インフラの場合
障害範囲
セマフォ確認
NSD確認
NSDあり
インフラ以外
クラッシュ以外
NSDなし
セマフォあり
セマフォ
有無
セマフォなし
NSD
取得
NSD
分析
NSD
取得
スレッド/タスク/リ
ソースの特定
当セッションで
は対象外
インフラ
調査
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
問題の種類 / 発生箇所の分析
問題の種類の見極め
– 問題の種類によって、調査項目や取得すべき情報は異なる
– 問題に応じて、適切な情報収集を行うことが重要である
– 今回扱う問題の種類
• クラッシュ
• ハングアップ
- 主に Lotus Domino サーバー 関連のタスクが異常終了した状態
- 応答がなくサーバー再起動でしか回避できない状態(サーバーコ
ンソールは入力不可)
• パフォーマンスダウン - 反応が遅くなる、なくなる状態(サーバーコンソールは入力可能)
問題の発生箇所の分析
– 現象やログなどから、どこで発生しているのかを見極める
– 障害の原因となるコンポーネント
•
•
•
•
オペレーティング・システム
ネットワーク
Lotus Domino サーバー
Lotus Notes クライアント
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
原因の究明 / ログ分析
問題原因の究明
– ログ内容から、問題の発生箇所を読み取る
– ログの種類
•
•
•
•
サーバーコンソールログ
Log.nsf
NSD
セマフォログ
得られる情報では原因がわからない場合も
– ログ内容からは原因が特定できない場合もある
– 初期設定で得られる情報では迅速に分析できない
事前にパラメータを設定しておくことを推奨
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
ログの確認
問題判別を行う際に、まず行うべきことはログを確認し、どのような問題が
起こっているか把握することです。
しかし、Lotus
Domino サーバーはデフォルトのままでは問題判別に有
しかし、
サーバーはデフォルトのままでは問題判別に有
用な情報をほとんど出力しません。
そのため、いくつかのnotes.iniパラメータを事前に設定しておき、様々な
パラメータを事前に設定しておき、様々な
そのため、いくつかの
事象の解析に有用なログ取得環境を整えておくことをお勧めします。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
推奨するnotes.iniパラメーター
当セッションにて
パラメーターは以下のとおりで
セッションにて設定しておくことを
にて設定しておくことを推奨する
設定しておくことを推奨するnotes.iniパラメーターは以下のとおりで
推奨する
す。
サーバー全般
– Console_Log_Enabled=1
– Debug_ThreadID=1
セマフォタイムアウト
– Debug_Show_Timeout=1
– Debug_Capture_Timeout=1
エージェント
– Log_Agentmanager=1
ビュー索引
– Log_Update=2
– Log_View_Events=1
複製
– Log_Replication=1
ユーザーアクセス
– Log_Sessions=1
– Server_Show_Performance=1
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Console_Log_Enabled=1 (1/2)
コンソールログファイル への記録を有効にするかどうかを指定します。
サーバーコンソールに表示されるメッセージにはlog.nsfに記録されないものが多いため、コンソールログを取得す
に記録されないものが多いため、コンソールログを取得す
サーバーコンソールに表示されるメッセージには
ることは重要です。
出力先は、"IBM_TECHNICAL_SUPPORT"
ディレクトリに作成される
出力先は、
"console_<Server>_<Date>@<Time>.log" というファイルです。
Value
説明
0
コンソールログファイルへの記録を無効にする
1
コンソールログファイルへの記録を有効にする
サーバーコンソール
CONSOLE.LOG
> sh config console_log_*
CONSOLE_LOG_ENABLED=1
>
> sh user
User Name
Databases Open
Minutes Since Last Used
Tomato/Lotus
>
> 1111111
Command or option is not recognized
>
> set config CONSOLE_LOG_ENABLED=0
> 2007/08/24 17:11:42 Console Logging is ENABLED
>
> 3333333
Command or option is not recognized
>
> sh user
User Name
Databases Open
Minutes Since Last Used
Tomato/Lotus
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Console_Log_Enabled=1 (2/2)
Console_Log_Enabled=を
をnotes.iniに明示的に指定していない場合で
に明示的に指定していない場合で
も、コンソールログが取得されます。
(Console_Log_Enabledのデフォルト値は
のデフォルト値は1)
のデフォルト値は )
しかし、明示的に指定していない場合、コンソールログのサイズが以下の
ように制限されます。
– Lotus Domino 8.5.2以前のバージョン 1KB
– Lotus Domino 8.5.3 10MB
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Debug_ThreadID=1
各タスクのプロセス ID、スレッド
、スレッド ID、カーネルスレッド
、カーネルスレッド ID を出力するパラメータです。
このパラメータによる出力結果は、LOG.NSF
には出力されません。
このパラメータによる出力結果は、
出力は、[プロセス
と表示されます。
出力は、 プロセスID
プロセス : バーチャルスレッドID
バーチャルスレッド - カーネルスレッドID]
カーネルスレッド
バーチャルスレッド ID - ドミノ内部で認識されるスレッド ID
カーネルスレッド ID - カーネル(OS) で認識されるスレッド ID
サーバーコンソール
プロセスID
バーチャルスレッドID
カーネルスレッドID
※ Lotus Domino 8.5.3 からデフォルトで有効となっています
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Debug_Show_Timeout=1 , Debug_Capture_Timeout=1
DEBUG_SHOW_TIMEOUT = 1
セマフォタイムアウトが発生した際に、タイムアウト・メッセージをサーバー・コンソールに表示します。
パフォーマンスの低下やハングアップが頻繁に発生した際などの調査に役立ちます。
DEBUG_CAPTURE_TIMEOUT = 1
Domino サーバーがセマフォ・タイムアウト・メッセージをコンソールにレポートする間隔を指定します。
サーバーがセマフォ・タイムアウト・メッセージをコンソールにレポートする間隔を指定します。
DEBUG_CAPTURE_TIMEOUT=1 を設定するとセマフォ・タイムアウト・メッセージが SEMDEBUG.TXT
に書き込まれます。
サーバーコンソール
THREAD [009F:00BE-0012] WAITING FOR RWSEM 0x4245 open database queue semaphore (@01070246)
(R=0,W=1,WRITER=009F:00AF-0025,1STREADER=009F:00AF-0025) FOR 5000 ms
※ Lotus Domino 8.5.3 からデフォルトで有効となっています
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Log_Agentmanager=1
Log_AgentManager = value
エージェント実行の開始を log.nsf に記録し、サーバーコンソールに表示するかどうか
に表示するかどうか
に記録し、
を指定します。
value
説明
0
エージェント実行イベントを記録しない
1
エージェント実行イベントを記録する (部分的に終了したものと、完全に終
部分的に終了したものと、完全に終
了したもの)
了したもの
2
正常に終了したエージェント実行イベントだけを記録する
Log_AgentManager=1
>
2007/08/24 12:26:30 AMgr: Start executing agent 'set_Categories' in 'TESTDB.nsf' by Executive '1'
2007/08/24 12:26:30 AMgr: 'System Admin/Lotus' is the agent signer of agent 'set_Categories' in 'TESTDB.nsf'
2007/08/24 12:26:30 AMgr: 'Agent 'set_Categories' in 'TESTDB.nsf' will run on behalf of 'System Admin/Lotus'
>
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Log_View_Events=1 ,Log_Update=2
データベースおよびインデクサーに関連したより深い詳細な情報を探
る場合に使用します。
LOG_UPDATE の設定では、インデックス (Update タスク)
タスク のアク
ティビティーに関する情報(具体的には、データベースの名称、更新さ
れたビューの名称、その他状態を表す内容)を設定できます。
LOG_UPDATE が設定されると、ビューの更新が行われる度に即座
にドミノ サーバー・コンソールにメッセージが表示され、ビューのイン
デックスが最新のものになります。(各ビューをチェックする毎にドミノ
サーバー・コンソールにメッセージが表示されます。)
Log_View_Events = value
ビューの再構築時にメッセージを log.nsf に記録するかどうかを指定
します。
LOG_VIEW_EVENTS=1
value
説明
0
ビューの再構築時にメッセージを記録しない
1
ビューの再構築時にメッセージを記録する
NOTES.INI ファイルからこの設定を削除した場合も、メッセージの記録は無
効になります。
•Log_Update = value
•サーバーコンソールと log.nsf に表示されるインデクサイベントの詳細
レベルを指定します。
LOG_UPDATE=2
value
説明
0
インデクサの起動時とシャットダウン時を記録する
1
インデクサの起動時とシャットダウン時、およびインデクサがあるデータベースの
ビューと全文索引を更新した時間を記録する。
2
インデクサの起動時とシャットダウン時、およびインデクサがあるデータベースの
ビューと全文索引を更新した時間を記録する。また、インデクサが更新したビュー
の名前も記録します。
2007/08/15 16:51:32 ビューの再構築 - ユーザーが REBUILD を指定しました。 (読み込み
読み込み
C:¥Program Files¥Lotus¥Domino¥data¥TESTDB.nsf デフォルトのビュー 文書 'すべての文書
すべての文書
($All)')
>
2007/08/15 16:52:11 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '(FlatCategory) FlatCategory')
2007/08/15 16:52:11 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '(LookupInterestProfiles) Lookup')
2007/08/15 16:52:12 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '(ProfileThreads) ProfileThread')
2007/08/15 16:52:12 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '(スレッド
スレッド)')
スレッド
2007/08/15 16:52:12 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '(デフォルトビュー
デフォルトビュー)
デフォルトビュー (Def')
2007/08/15 16:52:13 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 'ユーザー名の別名別
ユーザー名の別名別 By ')
2007/08/15 16:52:13 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '作成者プロフィール
作成者プロフィール Per')
2007/08/15 16:52:13 ビューの再構築 - コンテナまたは索引がありません。 (読み込み
読み込み C:¥Program
Files¥Lotus¥Domino¥data¥TESTDB.nsf ビュー 文書 '作成者別
作成者別 AuthorView')
>
>
2007/08/15 16:54:16 Updating views in TESTDB.nsf
2007/08/15 16:54:16 Updating TESTDB.nsf view '(FlatCategory)'
2007/08/15 16:54:16 Updating TESTDB.nsf view '(LookupAuthorProfiles)'
2007/08/15 16:54:16 Updating TESTDB.nsf view '(LookupInterestProfiles)'
2007/08/15 16:54:16 Updating TESTDB.nsf view '(ProfileThreads)'
2007/08/15 16:54:16 Updating TESTDB.nsf view '($Profiles)'
2007/08/15 16:54:16 Updating TESTDB.nsf view '(スレッド
スレッド)'
スレッド
2007/08/15 16:54:16 Updating TESTDB.nsf view '(デフォルトビュー
デフォルトビュー)'
デフォルトビュー
2007/08/15 16:54:16 Updating TESTDB.nsf view 'カテゴリ別
カテゴリ別'
カテゴリ別
2007/08/15 16:54:16 Updating TESTDB.nsf view 'すべての文書
すべての文書'
すべての文書
2007/08/15 16:54:16 Updating TESTDB.nsf view 'ユーザー名の別名別
ユーザー名の別名別'
ユーザー名の別名別
2007/08/15 16:54:16 Updating TESTDB.nsf view '作成者プロフィール
作成者プロフィール'
作成者プロフィール
2007/08/15 16:54:16 Finished updating views in TESTDB.nsf
>
>
2007/08/15 16:54:16 Full text indexing documents in TESTDB.nsf
2007/08/15 16:54:16 6 documents (13719 bytes) indexed in TESTDB.nsf
>
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Log_Replication=1
Log_Replication = value
現在のサーバーによって行われる複製イベントのロギングのレベルを指定します。
value
説明
0
複製イベントを記録しない
1
データベースの複製を記録する
2
複製された各データベースの情報を記録する
3
複製された各文書についての情報 (設計とデータの両方
設計とデータの両方)
設計とデータの両方 を記録す
る
4
複製された各フィールドの情報を記録する
5
複製イベントに関するサマリー情報を記録する
Log_Replication=1
「Server1/Lotus」は複製先のサーバー名、「test1.nsf」は複製したDBです。
2007/08/28 15:09:20 Starting replication with server Server1/Lotus
2007/08/28 15:09:20 Pushing test1.nsf to Server1/Lotus test1.nsf
2007/08/28 15:09:20 レプリケータは 1 文書を Server1/Lotus test1.nsf へ test1.nsf から追加しました
2007/08/28 15:09:20 Finished replication with server Server1/Lotus
Log_Replication=0の場合は何も出力されません。
の場合は何も出力されません。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Log_Sessions=1
Log_Sessions = value
個々のセッションを log.nsf に記録しコンソールに表示するかどうかを指定します。
value
説明
0
個々のセッションを記録しない
1
個々のセッションを記録する
Log_Sessions=1
>
> 2007/08/24 11:30:30 Opened session for System Admin/Lotus (Release 7.0.2)
>
> 2007/08/24 11:31:49 Closed session for System Admin/Lotus Databases accessed:
Documents written: 0
4 Documents read:
3
>
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Server_Show_Performance=1
Server_Show_Performance = value
コンソールにサーバーパフォーマンスイベントを表示するかどうかを指定します。
value
説明
1
コンソールにサーバーパフォーマンスイベントを表示する
以下のようなログが一分ごとにサーバーコンソール上に記録されるようになります。
1分間あたりのトランザクション数と現在セッションをはっているユーザー数を確認できます。
Server_Show_Performance = 1
>
2007/08/15 17:47:05 16 Transactions/Minute, 2 Notes Users
>
2007/08/15 17:48:05 3 Transactions/Minute, 2 Notes Users
>
2007/08/15 17:49:05 3 Transactions/Minute, 2 Notes Users
>
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDとは
NSD
– Notes System Diagnosticの略
Lotus Notes/Domino の状況を収集することのできるツール
– Lotus Notes/Dominoの設定や活動についての情報(プロセスや、共有メモリの状
況)を取得することができ、出力結果を確認することにより、NSDを実行した時に
どのようなプログラムがどのような処理を行っていたのかを確認することができま
す
– 出力結果はテキスト形式で、エディタで開き、内容を確認することができます
NSDの出力結果は、
の出力結果は、Lotus
Notes/Dominoの問題の解析を行うためには非常に
の問題の解析を行うためには非常に
の出力結果は、
重要な情報
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDの実行
自動での実行
– デフォルトではLotus Dominoサーバーのクラッシュ時にNSDが自動的に実行される
手動での実行
手動での実行
– ハングアップやパフォーマンスダウンの場合は手動でNSDを実行する必要がある
– UNIXプラットフォームの場合
プラットフォームの場合
Lotus Domino起動ユーザーにて、NSDを取得したいLotus Dominoサーバーのデータディレクトリに移動し、
/opt/ibm/lotus/bin/nsd を実行
– Windowsプラットフォームの場合
プラットフォームの場合
コマンドプロンプトから、NSDを取得したいLotus Dominoサーバーのデータディレクトリに移動し、nsd.exeをフルパス指
定で実行
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
参考)NSDを自動実行する設定
サーバー文書 - 基本情報タブ - 「診断情報を収集するためにNSDを実行」にチェック
を実行」にチェック
「診断情報を収集するために
(デフォルトで有効)
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDの出力ファイル
出力ファイル
– UNIXプラットフォームの場合
プラットフォームの場合
データディレクトリ/IBM_TECHNICAL_SUPPORT/
nsd_<オプション>_<platform>_<hostname>_<year>_<month>_<day>@<hour>_<minutes>.log
例 nsd_all_aix_notes01_2012_08_21@09_00.log
※nsd実行ユーザーがオーナーとなっているため、出力ファイルにアクセスする際にはnsd実行ユーザーにてアクセス
する必要があります
– Windowsプラットフォームの場合
プラットフォームの場合
データディレクトリ¥ IBM_TECHNICAL_SUPPORT¥
nsd_<オプション>_<platform>_<hostname>_<year>_<month>_<day>@<hour>_<minutes>.log
例 nsd_all_W32I_notes01_2012_08_21@09_00.log
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDに含まれる情報
ヘッダ情報
– ホスト名、日時、Lotus Notes/Dominoのバージョン、NSDのバージョンなど
スタックトレース情報
– 各スレッドの処理内容など
– Fatal Thread
プロセスツリー
Notes.ini
メモリ情報
など
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Fatal Thread
クラッシュなどの原因となったスレッド
– スタックトレース中に「Fatal」の文字が記述されている
– Fatal Threadのスタックトレースが同一であれば、同じ原因によるクラッ
シュだと判断できる
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォタイムアウト
ハングアップ/パフォーマンスダウンの原因のひとつ
ハングアップ パフォーマンスダウンの原因のひとつ
– セマフォタイムアウトが表示されているからといって、必ずしも問
題が発生しているわけではない
– ハングアップ/パフォーマンスダウンは必ずしもセマフォタイムアウ
トを伴うわけではない
– 一定期間以上連続してセマフォタイムアウトが表示され、サー
バーのハングアップ/パフォーマンスダウンが見られる場合には、
セマフォタイムアウトは原因特定のための有益な情報となる
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォとは
セマフォの一般的な定義は、並行して動作しているプロセス間
での同期/割込み処理の制御を行う機構、またはそのためにプ
での同期 割込み処理の制御を行う機構、またはそのためにプ
ロセス間で交換される信号のこと。
Lotus Notes/Dominoでは、あるタスクが行われている間は
では、あるタスクが行われている間は
セマフォをセットしてリソースやオブジェクトに対してロックをか
け、タスクが終了するとロックを解除する仕組みになっています。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォタイムアウトの出力
セマフォタイムアウトとは
– Lotus Dominoサーバーの内部では、タスクがどれくらい待たされている
かを記録しており、デフォルトでは、待ち時間が30秒を越えるとタイムア
ウトのログがコンソールログに表示されます。
セマフォタイムアウトを表示/出力
セマフォタイムアウトを表示 出力させるには
出力させるには
– セマフォタイムアウトを表示/出力させるためには、以下のパラメータを
notes.iniに設定する必要があります。
• DEBUG_SHOW_TIMEOUT=1
・・・サーバー・コンソールにタイムアウト・メッセージを表示する。
• DEBUG_CAPTURE_TIMEOUT=1
・・・SEMDEBUG.TXTを作成し、セマフォタイムアウト情報を記録する。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォタイムアウトが発生する理由
セマフォタイムアウトが発生する理由・原因はさまざまですが、その原
因を大きく分けた場合以下の4つになります。
因を大きく分けた場合以下の つになります。
– セマフォのデッドロック。2つのプロセスがそれぞれ一つずつリソースをロックし
ている状態において、各プロセスがお互いのリソースの解放を待っている場合
– 2つのプロセス/処理で、同時に同じデータベースに対して操作を行なおうとした
場合
– サーバーに過度の負荷がかかっていて、セマフォ解除の処理が遅れている場
合
– タスクの実行時にセマフォの解除をし損じ、あるタスクが永遠にブロックされつ
づける場合。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォタイムアウトの読み方 (1/2)
セマフォタイムアウトの読み方
以下のメッセージはTHREAD [590206:00002-00001] がアクセスしようとしたリソースが、
323690:00001が書き込みを実施するために発行したDDM Probe Config Cache semaphore
(0x1526)
)でロックされていたため、 THREAD [590206:00002-00001]がセマフォタイムアウトしているこ
とを示しています。
Waiter (リソース開放まで処理をまたされているThread)
sq="000005A5" THREAD [590206:00002-00001] WAITING FOR WRITE LOCK ON RWSEM
0x1526 DDM Probe Config Cache semaphore (@524D3404)
(R=0,W=1,WRITER=323690:00001,OWNER=323690:00001) FOR 30000 ms
Reader/Writer(処理終了までリソースをブロックしているThread)
セマフォの種類
セマフォタイムアウトの文法
Waiter Thread + セマフォの種類 + Reader/Writer Thread
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
セマフォタイムアウトの読み方 (2/2)
障害解析のポイント
– セマフォタイムアウトが大量に表示されパフォーマンス問題が発生
している場合には、基本的には最初に発生したタイムアウトメッセー
ジに着目する
– Open Database SemaphoreやOpen Collection Semaphoreなど
の典型的なセマフォは、多くの場合、データベースの不具合に起因
します。そういった場合はNSDを取得し、Reader/Writer Threadが
ロックしているデータベースを確認してください。データベースが特
定できた後は、DBサイズ・Viewサイズ・文書数・設計などを確認す
ると有効です。
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
LNDとは
Lotus Notes Diagnostic
– サポートが障害解析に使用しているツールのPublic版
• ただし、as-isとして提供され、無サポート、無保証
LNDの主な機能
の主な機能
– NSDからFatal Threadを検出し、技術情報を検索する
• LNDの機能はこれだけではありませんが、今回はこの機能を紹介します
ダウンロード先
Lotus Notes Diagnostic utility
http://www.ibm.com/support/docview.wss?uid=swg24019151
システム要件
– Windows プラットフォームのみ
– Lotus Notes 6.0 以降のバージョンが導入されていること
– 技術情報を検索するためには、端末がインターネットに接続されている必要がある
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
LNDによるNSDの解析
NSDファイルを選択して右クリック
ファイルを選択して右クリック
– 「Lotus Notes Diagnostic」 - 「Automatic process」を選択
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDの解析結果 (1/3)
検出された
Fatal Thread
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDの解析結果 (2/3)
Fatal Threadが開いていたDB
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
NSDの解析結果 (3/3)
検索に使用した文字列
技術情報の検索結果
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
LNDのメリット
Fatal Threadの検出とオープンしていた
の検出とオープンしていたDBの特定
の検出とオープンしていた の特定
– クラッシュ時の簡易なNSDの解析を自動的に行うことができる
– オープンしていたDBへのメンテナンスタスクの実行などで改善できる場
合もある
技術情報の自動検索
– 事象に合致する技術情報がヒットすれば、対応策が提供されている可
能性がある
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
概要
「自動診断データ収集」でサーバー/クライアントの障害時の診
「自動診断データ収集」でサーバー クライアントの障害時の診
断情報を収集する
「Fault Analyzer」で収集した情報を分析する
」で収集した情報を分析する
Fault Analyzerで
分析
サーバー
クライアント
メール受信DB
メールで送信
メールで送信
サーバー
クライアント
サーバー
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
メリット
自動診断データ収集
– クライアントの診断データ(NSDなど)を容易に入手できる
• クライアントでの問題の把握に有効
– サーバーのクラッシュの解析に必要な情報を効率的に入手でき
る
• 遠隔地にサーバーが多数存在する場合などに有効
Fault Analyzer
– クラッシュの頻度や同一性を容易に確認できる
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
自動診断データ収集
Lotus Notes/Dominoのクラッシュ後、再起動したときに自動的に障害情
のクラッシュ後、再起動したときに自動的に障害情
報をメール送信する機能
– 障害情報ファイルと.nbfファイルをメールに添付して送信する
• .nbfファイルは障害情報ファイルのリスト
– メールの送信先はメール受信DB
• クライアントとサーバーの情報を別々のDBに収集することもできる
– 特定のサーバー/ユーザーだけ設定することも可能
• サーバーの診断データの収集はサーバー設定文書で設定
– 診断情報を収集するためには、サーバー文書 – 基本情報タブ - 「診断情報を収集する
ためにNSDを実行」を有効にしておく必要がある
• クライアントの診断データの収集はデスクトップポリシー設定文書で設定
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
サーバーのデータを収集する設定
サーバー設定文書 - 診断情報タブ
– メール受信データベース
• 「Lotus Notes/Domino Fault Reports」(lndfr.nsf)を指定する
– lndfr.nsfは最初のサーバーに自動的に作成される
– 他のメール受信DBを指定することも可能だが、テンプレート「Lotus Notes/Domino Fault
Reports」(lndfr.ntf)からDBを作成する
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
クライアントのデータを収集する設定
デスクトップポリシー設定文書 - 診断情報タブ
– メール受信データベース
• 「Lotus Notes/Domino Fault Reports」(lndfr.nsf)を指定する
– 他のメール受信DBを指定することも可能だが、テンプレート「Lotus
Notes/Domino Fault Reports」(lndfr.ntf)からDBを作成する
– 次回起動時のメール送信の際にプロンプトを出すことが可能
– コメントの入力を求めることも可能
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
参考)クライアントに表示されるプロンプト
コメント入力のプロンプト
送信確認のプロンプト
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Fault Analyzer
自動診断収集で集めた障害情報を分析し、同一の障害かどう
か判断する機能
– 「Lotus Notes/Domino Fault Reports」(lndfr.nsf)のあるサー
バー上でアドインタスクを動かす
– NSDのスタックトレースを元に、同一の障害かどうか判定
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
Fault Analyzerの設定
サーバー設定文書 – 診断情報タブ
– 「サーバーの障害データベースでFault Analyzer を実行」を「はい」に設定
• 「Lotus Notes/Domino Fault Reports」(lndfr.nsf)があるサーバーに設定
する
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
IBM Domino 9.0でのFault Analyzerの機能拡張
「性質(Disposition)」を計算し、
)」を計算し、Fault
Reportをカテゴライズ
をカテゴライズ
「性質(
)」を計算し、
– Problem
• 以前にレポートされたクラッシュと一致するスタックの十分な情報を持って
いる
– Possible Problem (possibly actionable)
• 問題を調査する十分な情報を持っているが、管理者が取るべき適切なアク
ションがない
– Possible Problem (likely NOT actionable)
• 問題を調査するための十分な情報を含んでいない
– Information
• アクションを行う必要がない
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
アジェンダ
1. 問題判別とは
2. 問題の把握
3. NSD(
(Notes System Diagnostic)
)
4. セマフォタイムアウト
セマフォタイムアウト
5. LND(
(Lotus Notes Diagnostic)
)
6.自動診断データ収集と
自動診断データ収集とFault
Analyzer
自動診断データ収集と
まとめ
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
まとめ
問題の発生に備えて、解決に必要な情報が収集できる環境を
用意しておく
– 事前にnotes.iniパラメータは設定しておく
– NSDの自動取得は有効にしておく
管理者の端末にはLNDを導入しておく
を導入しておく
管理者の端末には
クライアントのクラッシュには自動診断データ収集を活用
– クライアントでのNSD実行はキャンセルしないように、ユーザーに
周知
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
参考)NSDの解析方法 (1/2)
1.取得したNSDからFatalスレッドを探す
2.このスタックトレースの内容を確認
FATAL と同じ行の右側に載っている、プロセス名とプロセスIDがキーとなる
上記NSD出力結果での、プロセス名とIDは以下の通り
① プロセス名:
② プロセスID:
nAMgr
0eb4: 1888
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
参考)NSDの解析方法 (2/2)
3.Virtual Thread ID から障害をおこしたプロセスがつかんでいたDBを特定
プロセスIDで検索
プロセス ID
** VThread [ nAMgr:0eb4: 2]
.Mapped To: PThread [ nAMgr:0eb4: 1888]
..
SOBJ: addr=0x00eb8578, h=0xf0104013 t=c176 (BLK_SDKT)
~~~中略~~~
(BLK_LOOKUP_THREAD)
..
SOBJ: addr=0x0c6510f8, h=0xf0104035 t=cf02 (BLK_FT_STATIC)
.. Database: n:¥domino¥data¥testdb.nsf
DB
© 2013 IBM Japan Systems Engineering Co.Ltd.
Lotus Notes/Domino 問題判別
参考情報
「Lotus Notes/Domino 問題判別ガイド」
– http://www.ibm.com/support/docview.wss?uid=swg21585952
LNDのより詳しい解説
のより詳しい解説
– 「Lotus Notes/Domino問題判別手法解説 」
– http://www.ibm.com/developerworks/jp/lotus/ldd_tech/20090710_n
d.html
技術情報の検索ページ
– 「サポート・ホーム」のページ右側の検索窓から検索する
– http://www.ibm.com/support/entry/portal/overview
© 2013 IBM Japan Systems Engineering Co.Ltd.
Fly UP