Linux
cron
sar
sysstat

sar(sysstat)の00時00分のデータが取れてない?

ここではsar(sysstat)のインストール方法、使い方などは省かせていただきます。
非常にわかりやすかったページのリンクを貼っておきます。

sar(sysstat)によるボトルネック特定

cron の設定について

デフォルトは下記のような設定になっていると思います。

/etc/cron.d/sysstat
*/10 * * * * root /usr/lib/sa/sa1 1 1
53 23 * * * root /usr/lib/sa/sa2 -A

しかし、00時00分~00時10分のデータを見てみると、

$ sar -q -s 00:00:00 -e 00:11:00


00時00分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00時10分01秒         1       488      0.01      0.32      0.29
平均値:          1       488      0.01      0.32      0.29

取れてない?

cron 設定変更

下記のページによると、

http://sebastien.godard.pagesperso-orange.fr/faq.html
日本語訳>
Sysstatは深夜にデータを取得しますが、値を表示するには2つのデータサンプルが必要です。
"ファイルローテーション"(新しい日の始まり)があると、sadcはそのデータを前日のデータファイル(/var/log/sa/sa<DD>)の末尾に書きます。

ということだそうです。
データサンプルが1つしかないため、00時00分のデータが表示されなかったようです。
crontab の例を基に下記のようにしました。

/etc/cron.d/sysstat
#*/10 * * * * root /usr/lib/sa/sa1 1 1
53 23 * * * root /usr/lib/sa/sa2 -A

*/10 1-22 * * * root /usr/lib/sa/sa1 1 1
0-40/10 23 * * * root /usr/lib/sa/sa1 1 1
50 23 * * * root /usr/lib/sa/sa1 600 2
10-50/10 0 * * * root /usr/lib/sa/sa1 1 1
$ sar -q -s 23:50:00 -e 00:01:00 -f /var/log/sa/sa<DD>

23時50分01秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15
00時00分01秒         1       424      0.13      0.03      0.01
平均値:          1       424      0.13      0.03      0.01

末尾に00時00分のデータが書き込まれていました。
<DD>を「17」とした場合、
翌日18日の00時00分のデータが「/var/log/sa/sa17」の末尾に書き込まれています。

5分毎の場合は下記のようになると思います。(未検証)

/etc/cron.d/sysstat
58 23 * * * root /usr/lib/sa/sa2 -A

*/5 1-22 * * * root /usr/lib/sa/sa1 1 1
0-50/5 23 * * * root /usr/lib/sa/sa1 1 1
55 23 * * * root /usr/lib/sa/sa1 300 2
5-55/5 0 * * * root /usr/lib/sa/sa1 1 1

さいごに

翌日のデータが末尾に書き込まれる、というのが要注意です。
00時00分のデータは必要ない、という場合はこのような設定変更は不要です。
データが抜け落ちてて気持ち悪い、という方はご参考までに