- ロードアベレージは処理待ちのプロセス数
- CPUコア数以下におさえたい?
- 3値表示は、1分、5分、15分の平均値
cronで記録してる
- /etc/cron.d/sysstatにこう書かれてる
# run system activity accounting tool every an hour
5 * * * * 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
/etc/cron.d/DK_top_report
/usr/local/hyperbox/bin/top_report.pl に送信メアドがズバリ書いてあった
- /usr/local/hyperbox/bin/top_report.pl
#!/usr/bin/perl
# Heavy load process checker
$load_threshold = "5";
$process_threshold = "250";
$to='';
$cc='';
$host=`hostname`;
chop($host);
$from="top_report@".$host;
$sendmail='/usr/sbin/sendmail';
$load = `uptime`;
$psnum = `ps aux | wc -l`;
$load =~ s/^.*average\:\ (.*)$/$1/;
($load1,$load2,$load3) = split(/,/,$load,3);
if ( $load1 >= $load_threshold || $psnum >= $process_threshold ) {
$top_head = "USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND";
$top = `/bin/ps auwx --no-heading|/bin/sort +2nr`;
#$TOP=`/usr/bin/top -b -n 1`;
if (!(open(OUT,"| $sendmail -t -f $from"))) { print "sendmail open error.\n"; }
print OUT "To: $to\n";
print OUT "Cc: $cc\n";
print OUT "From: $from\n";
print OUT "Subject: $host is heavy loaded.\n";
print OUT "$host is heavy loaded.\n";
print OUT "process ($process_threshold) : $psnum";
print OUT "load ($load_threshold) : $load \n";
print OUT "$top_head \n";
print OUT $top;
close(OUT);
}