サーバ管理: 2007年11月アーカイブ
ここ最近、サーバが過負荷で処理効率が極端に落ちる現象が多発していました。効率が落ちるだけでサービスを提供してくれるならまだマシなんですが、それを通り越してSSHでログインできないこともしばしば…。家にいれば簡単に再起動できるんですけど、そうじゃなかったら長期間サーバが実質死亡状態で放置されることになってしまいます。
それを回避するために、過負荷で処理できなくなる前にさっさと再起動するようなスクリプトを書いてみました。まずはそのスクリプトを見てみてください。
#!/usr/bin/perl
$threshold = 50;
open( LOAD_AVERAGE, "</proc/loadavg" );
$value = <LOAD_AVERAGE>;
close( LOAD_AVERAGE );
$value =~ s/\..*//;
if( $value >= $threshold ) {
print "I'm rebooting now!! [load average]$value";
system("reboot");
}
exit;
これを、/etc/cron.hourly の中に放り込んで、rootの実行権限を追加すれば出来上がりです。でも、このソースはちょっと間違えるとえらいことになるので取扱注意です。 *1
*1
: 例えば、$threshold = 1にするとか。

最近のコメント
hszaki on ハワイアン・バーガー: 残念・・
alto on ハワイアン・バーガー: 食べたその日にこの記
tetsu on ハワイアン・バーガー: マヨネーズは・・・、
hszaki on ハワイアン・バーガー: マヨネーズ入っていた
tetsu on MovableType5にアップグレード: 指摘ありがとうござい
hszaki on MovableType5にアップグレード: 新年早々、エリクサー
tetsu on FFXIII: win2000って.
alto on FFXIII: こっちでも仕事でちょ
tetsu on 所属オケの演奏会: ごめんなさい^^;