趣味と実益と現実逃避で更新されるblogです.
役に立つことから無意味なことまでさまざま書いていきます.
|
August 28th, 2006 |
httpdを監視して調子が悪かったら再起動してみるスクリプト(Read: 72760) |
参照: |
そのままなんですが,この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 いちいちログに残っても意味があまりないのでログが残らない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> # /sbin/service httpd reload (設定ファイル再読込) # /sbin/service httpd restart (再起動) どういうことYO!! |
ELF Aug 28th, 2006 02:06 / [ 編集 ]
[ コメントする ] [ トラックバック(0) ] [ ] |
▼ この記事へのコメント ▼ |
トピックの参照元
| ▼最近のトピック
| ▼ 人気のトピック |
[ POST ] [ AddLink ] [ CtlPanel ]
<< | 8月 | >> | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
* | * | 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 | 31 | * | * |