fc2ブログ

NSD 概要

NSD の記事ですが少し繰り上げて今日から書き始める事にします。

たくさんの記事があるのでブログの記事にするには小出しにしていくことになってしまいますが、何とか記事毎に話は完結させるようにするのでご了承下さい。

何から書き始めるか悩んだのですが始めから読み方のような話をしても分かりづらい気がしたので今日は概要について書いてみます。(尚、ここからの記事では 7.0以降のNSDを想定して書いています。それ以前のリリースでもほぼ同じ状況のはずですが、多少異なる点があることはあらかじめご了承下さい。)

NSDは、Notes System Diagnostics の略で、Lotus Notes/Domino の障害解析ツールです。
サーバークラッシュ・ハングではもっとも強力な調査ツールと言えるのではないかと思います。
NSDが使用されるもっとも典型的な問題は、クラッシュ・ハング・サーバースローダウン等の問題ですが、システム情報の収集やプロセスの状態などを確認したり、文字通りNotesの動くシステムの診断ツールと言えるのではないかと思います。

■ 透過的な実行
NSDは出来るだけ機能を透過的に利用できるようにするため、サーバー・クライアントでもほぼ同じように動き、多少プラットフォームごとに出力の差異はありますが、Macintosh を除くほぼ全てのプラットフォームで提供されています。

UNIXプラットフォームではNSDはnsd.sh とmemcheckと言うバイナリから構成され、Windows ではnsd.exeと言う実行ファイルから構成されていますが、出力などは可能な限り近い形式で表示されるようになっています。

■ NSD の構成
そもそもNSDはどのような情報が含まれているのでしょうか。
細かく見ていくと切りが無いのですが、大まかには以下のような情報から構成されます。

ヘッダー情報

バージョン情報
取得時間
ホスト名
使用したコマンドライン引数など

プロセス情報

Process Tree
プロセス一覧など

コールスタック

読み込んでいるDLL
各スレッド毎のコールスタック

Memcheck

ノーツ固有の情報
・ 共有メモリ、プロセスヒープなど
・ メモリハンドルの利用状況
・ 開いているデータベースやビューなど

環境情報

ネットワーク情報
ハードウェア情報(CPU数、搭載メモリなど)
環境変数
Notes.ini
パッチ情報など
※ プラットフォームによって出力には差異があります


NSDはこのように取得時のスナップショットを最大限に取得しますが、やはり不得手なエリア、と言うのはあるので、どんな問題でも行き詰ったらNSDで解決!とは行きません。

たとえばクライアントのUI操作に依存した部分はNSDだけではなかなか分からないですし、式言語やLotusScriptやJavaなどから発生しているエラーやランタイムエラーはやはり言語に応じた機能を使う方が効率的に問題特定が行えるので、TPOに応じた利用が必要な点は言うまでもないのですが、上のようにどのような出力が含まれるのか分かっていればこういう点は考えやすいのではないかなと思います。

次回から少しずつNSD の出力などについて詳細に入っていきたいと思います。

# NSDは長期に渡って取り上げようと思っているので、基本的には間に記事を挟みながらの少しずつの紹介になると思いますので、あらかじめ御了承下さい。。

コメント

非公開コメント