ksarを使ってMac上でグラフィカルにsarファイルを分析する
EC2インスタンスのsarファイルを分析する必要があり、sarの内容をグラフィカルに描画できるksarを使いました。ちょっとつまづくところがあったので、使い方をまとめます。
1. sarファイルをテキストファイル形式で出力する。(sa16は例。ファイル名は日にちで変わる。)
LC_ALL=C sar -A -f sa16 > sa16.txt
- LC_ALL=Cを付与して英語形式でテキストファイルを出力させます。日本語が含まれていると、ksarからうまく読み込めないそうです。
- サーバ上にsa16.txtファイルがある場合は、scpコマンドなどでローカルに持ってきましょう。
2. sa16.txtファイル内から、以下のkbhugfreeのセクションの記述を削除する。
00:00:01 kbhugfree kbhugused %hugused 00:01:01 0 0 0.00 00:02:01 0 0 0.00 00:03:01 0 0 0.00 00:04:01 0 0 0.00 00:05:01 0 0 0.00 ... 23:59:01 0 0 0.00
perlを使って消すのであれば、
perl -0pi -e 's;\S+\s+kbhugfree.*(\d\d:\d\d:\d\d\s+\d\s+\d\s+\d\.00)+;;s' sa16.txt
となります。
このkbhugfreeの箇所の記述は、現在のksarでは対応していないようで、ksarで読み込もうとすると、
java.lang.NumberFormatException: For input string: "kbhugfree" at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054) at java.base/jdk.internal.math.FloatingDecimal.parseFloat(FloatingDecimal.java:122) at java.base/java.lang.Float.parseFloat(Float.java:455) at java.base/java.lang.Float.<init>(Float.java:554) at net.atomique.ksar.Linux.Parser.parse(Parser.java:1046) at net.atomique.ksar.kSar.parse(kSar.java:750) at net.atomique.ksar.FileRead.run(FileRead.java:62) time to parse: 342ms number of line: 25905 line/msec: 75.0
というエラーが出力されて、グラフを描画することが出来ません。
3. ksarを起動する。
https://sourceforge.net/projects/ksar/ から、ksarのzipファイルをダウンロードしてきて解凍。
java -jar kSar-5.0.6/kSar.jar
で起動させます。
4. sa16.txtファイルを読み込む。
ウィンドウが表示されたら、
Data => Load from text file... => ダイアログからsa16.txtファイルを選択
で、Data import is finishedというメッセージが表示されて、グラフが読み取れるようになります。
こんな感じで項目が表示されれば、読み取り成功。分析しまくりましょう。