📈

sadfコマンドでsarログのグラフファイルを生成する

2023/04/18に公開

背景

自分はこれまで、負荷調査のためにリソース使用状況の可視化をする場合、
ksarというツールを利用していました。

しかし、2015年から更新が止まっており、
プロジェクトページもなくなっているように見受けられます。
この先もこれを利用するのも少しアレだと思ったので、
代替手段で対応できないか模索したところ、
sadfコマンドを使えば変換できることが分かったのでメモします。

環境情報

  • RHEL系OS 8以上
    ※自分は、Alma linux9.1で試しました。
     Alma linuxのインストール方法は気が向いたら書くかもしれません。

対応内容

1.sarファイルの変換

  • コマンド
    下記コマンドでバイナリのsarファイルを変換します。
    ※通常取得しているsysstatのsaログであれば、"/var/log/saXX"ファイルを指定すればOKです。
    ※root権限を持つユーザでないと実行できません。
sudo sadf -T -g -s "XX:XX:XX" -e "XX:XX:XX" -- -A (読み込むsarのバイナリファイル名) > (出力したいファイル名).svg
  • オプション説明
オプション 説明
-T タイムスタンプをUTCではなく、ローカル時刻で出力
-g svg形式でファイルを出力
-- [sarオプション] (-g に続けて記載)[sarオプション]の部分はsarコマンドのオプションに準じます。 ※1
-s データ切り出しの範囲指定(開始時刻・24時間表記) ※2
-e データ切り出しの範囲指定(終了時刻・24時間表記) ※2

※1 [sarオプション]については、分からなかったら"-A"を入れておけば問題ないです(≒すべてのリソース状況を出力)。
※2 オプションを利用しなくても良いです。その場合はログに残されているすべての時間帯のものを出力します。

  • 余談
    スパイクテストを実施する際、通常取得しているsysstatのsaログでは、
    最短でも1分おきの取得(だという理解)のため、少し間隔が広すぎるケースがあるかと思います。
    1秒間隔で負荷調査したい、ということであれば、
    以下コマンドを使えば、1秒おきのログを吐き出せます。
    終了させるなら"Ctrl + C"で止めます。
sudo sar -o (出力ファイル名) 1

2.出力されたファイルをデスクトップに回収

3.ファイルをブラウザにドラッグ&ドロップ
以下のようにグラフで負荷状況が描画されたものが確認できます。
※図は抜粋です。負荷がかかっていないので、ほぼ動きのないグラフですが…。

ブラウザ機能を使えば、pdfファイル化したり、
GoogleChromeでF12⇒Shift+Ctrl+P⇒fullと入力⇒Screenshot と純を踏んでいけばpng形式での変換も可能です。

感想

ksarと同等のことが出来て良かったです。

一点欲を言うなら、ksarをもともと使っていた自分としては、
負荷状況をグラフで確認しながら、情報の取捨選択をしてエクスポートできたことが
個人的には結構好きだったのですが、
このやり方だと、そこが出来ないのが少しだけ不便ですね。

参考

  • Manpage of SADF
    ※厳密にいうとsysstatのバージョンが違いますが、RHEL系8以上であれば問題ないはずです。

Discussion