Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

第1回 システム管理とWinDbgカーネルデバッガー

  2008/09/16 11:00

このコーナーでは、毎回5分から10分程度で読み切れるWinDbgに関する記事を提供します。肩肘張らずにお読みいただけると幸いです。システム運営・管理の基本はシステム情報をじっと観察することから。継続は力なり。信じたいと思います。

はじめに

 多くの企業がすでにコンピュータシステムを導入しています。導入されたコンピュータシステムの利用と維持・管理には、組織内ユーザシステム運営・管理者社外開発者/ベンダなどと呼ばれるいろいろな顔を持つ人々が関与しています。

システム運営・管理者の定義

 本連載はシステム運営・管理者に焦点を置き、便宜上、その職責を次のように定義しておきます。

  • システム運営・管理者は、組織内ユーザのためにシステムを運営・管理する
  • システム運営・管理者は、組織内ユーザの要求に基づき、必要なソフトウェアを社外開発者/ベンダーに発注する。

 これはあくまでも便宜上の定義です。組織によっては別の名称を採用し、その職責定義をより明確にしているでしょう。あるいは、これといった特別な名称を使用せず、コンピュータに詳しい有志に任せてしまっている組織もあるかもしれません。さらには、組織内ユーザシステム運営・管理者を兼務していることもあるでしょう。

 幸か不幸か、筆者はいろいろなタイプのシステム運営・管理者と話をする機会があります。彼らの多くは多忙を極め、"仕事だからやっています"と、どこか疲れ切っています。無力感が充満している印象を受けています。

複雑化するシステムの現状

 組織内ユーザは「レスポンスが悪い」とクレームをつけてくることがあります。ソフトウェア開発案件の受注者は、「納期を延ばしてほしい」あるいは「予算を増額してほしい」などと、いろいろな要求を出してきます。システム運営・管理者は、自分の立場を自分の言葉で説明し、ソルーションや妥協点を見い出す必要があります。これは簡単なようで、実際に実行に移すことは大変難しいものです。

 筆者の見聞の範囲では、深夜に及ぶ会議を何回となく開くケースが多いようです。後々の責任を考えた場合、積極的に会議をリードし、効率的にソルーションを導き出すには相当の覚悟と勇気が要ります。日常的に使用しているWindowsシステムといっても、その内部はきわめて複雑になっており、一人の人間がすべてを理解することは到底不可能です。

システム運営・管理とWindowsカーネル情報

 米Microsoft社にはPowerShellというコマンドラインツールを開発しているチームがあります。同チームに所属する一部の有力開発者は、「弊社はこれまでWindows GUIユーザとアプリケーション開発者用の情報はそれなりに提供してきたと思われますが、その中間に位置するユーザへの情報提供は十分なものではありませんでした」と告白しています。この告白で言及されている中間に位置するユーザとは、WindowsGUI部品を操作するエンドユーザとソフトウェアを生産する開発者の中間に位置するシステム運営・管理者を指していると考えてよいでしょう。

 本連載では、毎回カーネルデバッガーWinDbgを起動し、2、3のWinDbgコマンドを実行しながらWindowsカーネル内部の状態を観察していきます。

 システムの運営・管理には、膨大な知識が要求されます。担当者の負担を軽減する万能薬は、おそらく、存在しないでしょう。プロセス、スレッド、ハンドル、ページ、ヒープ、デッドロック、実行優先度、スレッド切り替え、クラッシュダンプなどの用語は日常的に多くの人の口に上ります。しかし、その意味を自信を持って説明できる人はどれほどいるでしょうか。できる人などいない、と筆者は考えています。

 システム運営・管理者は、組織内ユーザに助言を与え、彼らのビジネス活動を支えなければなりません。与える助言は確かなものでなければなりません。また、システム運営・管理者は、社外開発者/ベンダーに組織の現状と要求を伝え、協調連携しながらソルーションソフトウェアを生産しなければなりません。伝える要求は正確でなければなりません。生産するソフトウェアはビジネスに役立つものでなければなりません。まじめに考えれば考えるほど、辛い立場です。

 本連載では毎回5分から10分程度で読み切れるWindowsカーネル記事を用意します。Windowsカーネルから見た場合、たとえば、Windowsプロセスというのはプロセス構造体のインスタンスと定義できます。同じように、Windowsスレッドはスレッド構造体のインスタンスとなります。Windowsカーネルはその他多数の構造体を事前に定義しています。これらカーネル構造体の動きを観察していれば、Windowsシステムの状態をかなり把握できます。

 Windowsカーネルは多数の構造体を定義しています。それぞれの構造体は、他の多くの構造体と歩調を合わせながら変化しています。Windowsカーネル内部はかくのごとく複雑です。本連載では、複雑なWindowsカーネルの世界を私たちの人間社会にたとえながら話を進めていきます。たとえ話に含まれる誤解を回避するためには、具体的なシステムデータを示す必要があります。示すべきシステムデータは、次項で説明するカーネルデバッガー「WinDbg」を起動して取得します。

 度重ねる会議の末に導入した切り札システム。運用開始1ヵ月後当たりから、組織内ユーザの間に応答が遅い、という不平の声が湧き上がることは珍しくありません。その声が大きくなれば、経営上層部の耳に入ります。企業収益に敏感な経営層は、当然黙っていないはずです。システム運営・管理の基本はシステムデータを観察することから。継続は力なり。信じたいと思います。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 豊田 孝(トヨタ タカシ)

    フリーのシステムアナライザ/ITジャーナリスト。  「Windows PowerShell実践スクリプティング」(秀和システム)と「IT技術者として生き抜くための十ヶ条」(翔泳社)の近著2冊にて本音の数%を吐露。最近の活動傾向は、こちらを参照してください。

バックナンバー

連載:現場で使えるWinDbgカーネルコマンド
All contents copyright © 2007-2019 Shoeisha Co., Ltd. All rights reserved. ver.1.5