MyMiniCity踏んでください!!

ただいま絶賛MyMiniCity参加中です.是非リンクを踏んでください!!(笑
August 28th, 2006

httpdを監視して調子が悪かったら再起動してみるスクリプト

(Read: 74509)
Add to Hatena Bookmark

参照:
そのままなんですが,この1週間前後からえらいhttpd(いわゆるapache)が固まる(反応が超遅くなる程度だけど事実上固まるに近い ので久しぶりに監視スクリプトを復活してみた
ログを見ているとサーバースペックからするとピーク時がちょっとつらいアクセス数に見えました.
ぇぇ.チューニングがあまあますぎるんですよ.分かってるんだけどあまりチューニングする気無く(苦笑

#gsblogはやっと徐々にキャッシュを入れていってますが…

このサーバーのOSはFedora Core 1ベースにほとんどのrawhideを適用,PHPとapacheは自前(httpdはRed Hat Linux 7.3のものをそのままの思想で1.3.38までパッチを作り直してます),MySQLはmysql.comからバイナリを取ってきた感じです.

別段たいしたことはしていなくて,こんなことをやっています.

・httpdのPIDファイルを監視,あったら生きているはず
・HEADコマンドでアクセスしてみる
・タイムアウトなどおこったらhttpdの再起動やメルメルする

実用上アクセス先は静的ファイルなのでデフォルトのタイムリミットまでかかっても仕方がないのでタイムリミットを短くしています.
荒っぽいですけど特に若干データが壊れても困るような物はあまりないのでしばらくこれで行っています.


#!/bin/sh

if [ ! -f /var/run/httpd.pid ]; then
exit
fi

if [ /var/lib/mysql/www.example.com.pid ]; then
MYSQL=running
else
MYSQL=stopped
fi

DEAD=no
HEAD -t 5 -d http://watch.example.com/ > /dev/null || DEAD=yes
if [ "${DEAD}" = "yes" ]; then
cat <<EOF | sendmail -t -i
From: <root@example.com>
To: <to_mobile_phone@example.com>
Subject:httpd on www.example.com is dead

Automatic restarted.

EOF
/sbin/service httpd stop
if [ "${MYSQL}" = "running" ]; then
/sbin/service mysql stop
fi
sleep 2
if [ "${MYSQL}" = "running" ]; then
/sbin/service mysql start
fi
/sbin/service httpd start
fi
ちなみに今回はwatch.example.comに対してアクセスしています.
いちいちログに残っても意味があまりないのでログが残らないVirtualHostとしてhttpdの設定をし,
hostsなどでwatch.example.comは127.0.0.1に向け,httpd.confなどなどにログは/dev/nullに棄てます.
実際の設定ファイルで言うとこんな感じです.


<VirtualHost *:80>
ServerName watch.example.com
ServerAdmin webmaster@example.com
DocumentRoot "/docroot/example.com/watch/htdocs/"
CustomLog /dev/null combined
ErrorLog /dev/null
</VirtualHost>
httpd.confを修正したらhttpdの設定ファイルの再読込とか再起動をしましょう.


# /sbin/service httpd reload (設定ファイル再読込)
# /sbin/service httpd restart (再起動)
しかし!!このスクリプトを動かすようになってからなんか調子いいし!!
どういうことYO!!


▼ この記事へのコメント ▼
うちはwgetで何度かリトライしてだめだったら再起動とかいうスクリプトでやってます。

VirtualHostにしてしまうのは、なるほどなアイデアだねー。

VirtualHostはとにかくログには出したくない(あまり重要性を感じなかった)んすよね
こういうのって

・TCP/IPレベルでのタイムアウト
・HTTPのタイムアウト
・コンテンツの質(静的,動的,動的ならどういうものか)

とかも必要なら厳密に調べないといけないんですよねぇ

トピックの参照元

▼最近のトピック

▼ 人気のトピック


< 過去の記事 [ 9月の All Categories リスト ] 新しい記事 >
Powered by gsblog (customize)

[ POST ] [ AddLink ] [ CtlPanel ]

Subscribe blog

Bookmark blog

About me

about me

応援しています

我が息子が産まれたアクア・バースハウス(東京都世田谷区にある助産院)を応援しています.

翻訳のお仕事

腕に自信がある方,修行をしたい方はこちらをどうぞ.

2023 calendar

9月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
| Day | Month | Year |

Powered by RRDTOOL.

Archives

Categories

Links


Mail to admin

人気ブログランキングへ RSS feed meter for http://blog.poyo.jp/ Search Engine Optimization
blogpeople.netに登録!! スカウター : よくきたblog

My Google news

My Google News

Related site

ころんころん♪ べびぽよ フォト蔵Wiki
string(14) "/id-1156698408"