Comments
Description
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.