Home > Tech > サーバの謎な挙動2

サーバの謎な挙動2

December 21st, 2007

こんにちは。

先日の続きです。

私は、sarが何をやっているか恥ずかしながら知らなかったので、

[nice_code]strace -f -F -o ~/stracelog.txt sar -P ALL[/nice_code]

を実施しトレースを取得しsarコマンドが何をしているか追ってみることにした。
出力結果はすぐにでたので、出力結果の中身をのぞかしてもらうと、

[nice_code]open(“/var/log/sa/sa19”, O_RDONLY) = 3[/nice_code]

という動作が見られた。このコマンドはいろいろやってはいるだろうけど、大まかに書けば/var/log/sa以下につくられたファイルを開いて整形しているようだ。
##ただこのファイルはバイナリなので、sarで開くなどしないと読めない点は注意だ。

なるほど。たしjかにsarは10分ごとに値を取得していたな。
ということはこれらはcron様の仕事であるので、cron様の業務内容のうち、
less /etc/cron.d/sysstat
の内容を見せてもらう。

[nice_code]# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib/sa/sa2 -A
[/nice_code]

10分ごとに働いている実体は、
/usr/lib/sa/sa1
であることがわかったので、
さらに中身をのぞくと、

[nice_code]#!/bin/sh
# PREFIX/lib/sa/sa1.sh
# (C) 1999-2004 Sebastien Godard (sysstat <at> wanadoo.fr)
#
umask 0022
DATE=`date +%d`
ENDIR=/usr/lib/sa
DFILE=/var/log/sa/sa${DATE}
cd ${ENDIR}
if [ $# = 0 ]
then
exec ${ENDIR}/sadc -F -L 1 1 ${DFILE}
else
exec ${ENDIR}/sadc -F -L $* ${DFILE}
fi
[/nice_code]

と書いてある。
結局はまたシェルスクリプトであったわけだが、
働いているコマンドの実体は

[nice_code]${ENDIR}/sadc -F -L 1 1[/nice_code]

なので、
これをまたstraceにかけてみる。

[nice_code]strace -f -F -o ~/strace_sadc_log.txt /usr/lib/sa/sadc -F -L 1 1[/nice_code]

出力結果をのぞくとなんてことは無く、
/procより下のシステム情報をせっせと集めているようだった。

[nice_code]open(“/proc/diskstats”, O_RDONLY) = 3[/nice_code]

[nice_code]open(“/proc/stat”, O_RDONLY) = 4[/nice_code]

など。

そうすると、cpuの情報はどこがソースだ?該当しそうなのは、やはり/proc/statだね。

そうすると、MRTGと同じところを見ているので、MRTGとsarの結果は同期するはずだけど。

なんかおかしい。なにか見落としているのか、、、、。

さらにつづく。

Categories: Tech Tags: , , , ,
Comments are closed.
Theme by NeoEase. Valid XHTML 1.1 and CSS 3.