PDを行う際に心強い味方となってくれるのがさまざまなツール類だ。ツールを利用することで、ログや設定ファイルからだけでは分からないシステムの内部情報についても知ることができる。そこで今回は、過負荷状態となったときOSの内部ではどのような動作が行われているのか、幾つかのツールを使用して探ってみよう。
OS上でPD*を進めるにあたり、「設定ファイルやログファイルの確認は当然すべきである」ということはすでに述べてきた。いまさら言うまでもないが、設定ファイルは「対象となる機能の動作をパラメータで定義した静的な情報」であり、ログファイルは「OSやソフトウェアが発行するメッセージを記録したもの」である。しかし、システム上で発生し得る現象をこれらの情報だけですべて把握することはとうてい不可能である。そこで、さまざまなツールを適材適所で使いこなし、得られる情報を的確に分析することが必要となる。
Linuxにおいて、PDで利用可能なツールは通常ディストリビューションのパッケージという形で入手できる。はじめに、どのようなツールがPDに利用できるかを整理してみよう。表1はRed Hat Enterprise LinuxでPDに利用できるツール類である。また、表2は別途インストールなどが必要であるものの有用なツール類である。ここでは主なツールのみ挙げているが、このほかにも通常何げなく使っているツールや機能などで、PDに役立てられるものは多くあるだろう。今回はこれらの中でも使用頻度の高いvmstat、iostat、topをピックアップし、その使用方法やPDにおけるポイントなどを順に述べていきたい。なお、プロファイラ、トレーサ、ダンプを使用したPDはそれぞれ別の回で個別に説明する予定だ。
Problem Determinationの略。直訳すれば、「問題を確定する」などになる。問題の切り分けをし、問題部分を特定する、つまり問題判別することをPDと呼ぶ。
現在起動中のカーネルから直接新しいカーネルを起動する仕組み。同様の機能にkexecがあるが、mkexecでは先に起動されていたカーネルのメモリ空間を上書きせず、任意のアドレスにダンプ用のミニカーネルをロードできるよう改良されている。
このディレクトリ以下の仮想ファイルにアクセスすることでにシステムの稼働情報を取得できる。
カーネルがメッセージを記録するために使用するメモリ領域。
Network Interface Card。
プロセス間で情報を共有したり、通信し合うための仕組み。
カーネルの内部で頻繁に利用されるオブジェクト用のキャッシュ。
仮想メモリが物理メモリやスワップデバイスにどのようにマッピングされているかを示す情報。
カーネルがクラッシュした際に使用していたメモリの内容を出力したもの。
Copyright © ITmedia, Inc. All Rights Reserved.