【コラム】

システムの評価、できてますか?

7 身近な定量評価 - sa2で毎日のレポート

鶴田展之  [2007/02/01]

定量的な評価のためにはデータの蓄積が重要であることは既に述べた。たまにCPUやメモリの情報をチェックするぐらいでは、システムの正しい状態はなかなか見えてこない(かもしれない)。かといって、毎日ターミナルからsarコマンドを実行するのも面倒だ。そこで今回は、「sar」による情報収集を自動化する定番の方法を紹介したい。

簡単に流れを説明すると、Mac OS XやLinuxには、大抵sarのお友達として「sa1」「sa2」というシェルスクリプトが用意されている。sa1はシステムの稼働情報を収集して記録する「コレクタ」で、集めたデータを「saDD」という名前のファイルに出力する(saDDの"DD"は日付。1月31日のデータなら、ファイル名はsa31になる)。sa2はsa1が記録したデータを元に、デイリーの報告ファイルを出力する「レポータ」である。saDDファイルから、sarコマンドの出力と同様の形式のテキストファイル「sarDD」を生成する。

試しにターミナルから直接、sa1とsa2を実行してみよう。ここではMac OS X環境を前提にするが、Linuxでもパスなどが多少異なるだけで基本は同じである。

まず、以下のようにsa1を実行する。

$ sudo /usr/lib/sa/sa1 5 100 &

sa1に与える引き数は、基本的にsarコマンドと同じである。この例では、5秒毎に100回、合計500秒(8分20秒)間に渡って、バックグラウンドでシステムの情報を収集するわけだ。sa1を実行したら、虚飾の無いデータが取れるよう、8分20秒間普段通りに仕事をしてみよう。

設定した回数の情報収集が終わると、sa1は自動的に処理を終了する。これで、/var/log/saディレクトリには、saDDファイルが作成されているはずだ。saDDはバイナリファイルなので、lessやviなどで開いても単に化け化けの文字列にしか見えない。これを人間が読める形式にしてくれるのが、sa2スクリプトだ。以下のようにsa2を実行してみよう。

$ sudo /usr/lib/sa/sa2 -A

これで/var/log/saディレクトリにはsarDDファイルが作成され、元となったsaDDファイルは削除される。lessコマンドでsarDDファイルを開いてみよう。以下のように、CPU、メモリ、ディスク、ネットワークインターフェースの各情報がレポートされているはずだ。

22:25:15  %usr   %sys   %idle
22:25:15    5      6     88
 
22:25:15    pgout/s
22:25:15        0.0   
 
22:25:15     pgin/s        pflt/s        vflt/s
22:25:15        0.0           1.2         249.6
 
22:25:15   device    r+w/s    blks/s
22:25:15   disk0       49       5943
 
22:25:15    IFACE    Ipkts/s      Ibytes/s     Opkts/s      Obytes/s
22:25:15    lo0            0             0           0             0
22:25:15    gif0           0             0           0             0
22:25:15    stf0           0             0           0             0
22:25:15    en0            0             0           0             0
22:25:15    en1          630        366681         623        213872
 
22:25:15    IFACE     Ierrs/s     Oerrs/s    Coll/s      Drop/s
22:25:15    lo0             0          0        0           0
22:25:15    gif0            0          0        0           0
22:25:15    stf0            0          0        0           0
22:25:15    en0             0          0        0           0
22:25:15    en1            31          0        0           0

つまり、sa1とsa2が適当なタイミングで実行されるよう、処理をスケジューリングしておけば、いちいち人手を介さなくても日々sarのログが取得できるわけだ。Mac OS Xのmanページには、/etc/crontabに以下の設定を記述する例が示されている。

     # Starting at 8am collect system activity records
     # every 20 minutes for 12 hours
     # 20 minutes = 1200 seconds
     # 12 hours with 3 samples each hour = 36 loops
 
     0 8 * * 1-5 /usr/lib/sa/sa1 1200 36
 
     # After the 12 hour period,
     # collect a system activity report
 
     30 20 * * 1-5 /usr/lib/sa/sa2 -A

この例では、月曜から火曜の8時ちょうどから20分毎に36回、つまり12時間の情報を、sa1で収集している。sa1が集めたデータは、20時30分にsa2が実行されることでレポートファイルに出力される仕掛けだ。あとは、サンプル収集の間隔や時間帯を、マシンの利用形態に合わせて調整すれば良いだろう。

ちなみに、Mac OS Xの場合はsar、sa1、sa2が最初から使えるはずだが、Linuxではインストールされていない場合もある。sarコマンドが見つからない場合は、各ディストリビューションの作法に従って、「sysstat」パッケージをインストールしよう。

    新着記事

    特設サイトの情報

    求人情報

    人気記事

    一覧

    イチオシ記事

    新着記事

    特別企画

    一覧

    転職ノウハウ

    あなたの仕事適性診断

    4つの診断で、自分の適性を見つめなおそう!

    Heroes File ~挑戦者たち~

    働くこと・挑戦し続けることへの思いを綴ったインタビュー

    はじめての転職診断

    あなたにピッタリのアドバイスを読むことができます。

    転職Q&A

    転職に必要な情報が収集できます

    スカウト転職する

    企業からアプローチのメッセージが届きます。