このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

WebSTAR 3.0 の運用

発言者:田中求之
( Date Sunday, March 29, 1998 16:01:12 )


WebSTAR 3.0 の運用(使用)に関してです。

3.0 では Plugin が山ほど入りますが、不要なものはとにかく抜くというのが
安定と、少しでも早い処理のための秘訣です。

特に、3.0 になって導入された Plugin の中には、Filter 機能を果たす
Plugin がいくつかあり、これらは、すべてのアクセスに何らかの形で処理を
行うことになります。ですから、不要なものを抜くと、その分、処理が減って
早くなることになります(といっても、その違いがはっきり出るとは思えませ
んが)。

Byte Server, Directory Indexer, Java Servlet Runner, WebObject
Adaptor などが、この Filter 機能を果たす Plugin になるそうですので、
これらは不要なら必ず抜いておくのが良いということになります。(Virtual
Hosts など、他にも Filter をやってるのがあると思うのだけど…??)

田中求之 さんからのコメント
( Tuesday, March 31, 1998 21:06:19 )

う〜〜ん、突然サーバーが Quit してしまうという症状が出てきた…

Plugin か、サーバーか?

たまちゃん さんからのコメント
( Tuesday, March 31, 1998 23:11:19 )

betaのときよりは確かに安定していると思うのですが、出荷が少なくとも1カ
月早かったような気がします。

#3.0が出た以上、2.1を100ドルにすれば売れると思うんですけど。。。

田中求之 さんからのコメント
( Wednesday, April 01, 1998 00:27:39 )

>出荷が少なくとも1カ
>月早かったような気がします。

Beta のメーリングリストを見ていたかぎりでは、とにかくスケジュール優先で
最後は出荷に持っていったという感じですよね。普通はベータの後に fc が出て
GM が出てからリリース、というのが、これまでの WebSTAR の開発の手順で、
今回もそうするだろうと思っていたから4月中のリリースも危ないと見てた
のですが、fc と GM をすっ飛ばして出しましたものね。

ま、サーバーそのものは安定しているようなので、問題は Plugin かなと
思って、現在、Virtual host と NetCloka しか入れずに動かしてみて
います(管理設定すらできない状態) (^_^;;

石津@RJCまだ会社(;_;) さんからのコメント
( Wednesday, April 01, 1998 01:52:52 )

うちはメインサーバをWebStar3.0にしてみました。(^-^;
さてどうなるか楽しみですねー。

PowerMac7600/200でMacOS8.1Jですが、安定して動いてますね。
ちゃんとリモート制御もftpもうまく動いてます。
偶然かな?

田中求之 さんからのコメント
( Wednesday, April 01, 1998 13:40:32 )

>偶然かな?

最近のサーバーの傾向として PowerMac の方が安定する(ユーザーも多いので
ベータテストでも問題点などはすぐに見つかり改良される)というのはありますね。


田中求之 さんからのコメント
( Thursday, April 02, 1998 10:27:23 )

純正の Plugin だけを使っていても、落ちるときには落ちるなぁ…

ただ、すぅっと静かに落ちてしまう(予期せぬエラー云々のダイアログすら出ない)
というのが不気味です。

今のところ、落ちてたら立ち上げるというスクリプトでごまかせているけど、
原因が絞り込めないのは不安です。

やれやれ

田中求之 さんからのコメント
( Thursday, April 02, 1998 10:32:00 )

WebSTAR 3.0 は HTTP 1.1 対応のサーバということになっていますが、デフォルト
では HTTP 1.1 のサーバーの要件を満たさないようになっていますので、こだわる方
は気をつけてください。

HTTP 1.1 のサーバーは、Connection は KeepAlive で張るのが普通で、ブラウザ
からのリクエストの HTTP ヘッダで Close を指示されたら Connection を落とす
ようになってないといけないのですが、WebSTAR 3.0 は、WebSTAR 2.x 同様に、
デフォルトでは KeepAlive 接続は行わないようになっています。

POWERBOOK ARMY 飯嶋 さんからのコメント
( Thursday, April 02, 1998 11:19:43 )

私も2.x環境下で同様に,静かに落ちていることが何度もありました。
トラフィックが増えた時の処理の問題かなと思っていたのですが...

石津@RJC さんからのコメント
( Thursday, April 02, 1998 12:04:07 )

取りあえず1.5日ほど無事に動いてます。
アクセスは12万ヒットぐらい。

全ページSSIで処理かけている割りには安定してる感じがしますね。

田中求之 さんからのコメント
( Friday, April 03, 1998 18:38:12 )

相変わらず、アクセス数などに関係なく、とつぜんお亡くなりになる症状が
続いています。

落ちるときには累計アクセスが 1000 に満たなくても落ちるし、そうかと思えば
1時間に 1000 ヒット以上の状態がず〜っと続いても平気だったりします。

やれやれ。ま、しばらく様子を見ます。webSTAR がリスタートできなかったら
サーバー自体を強制リスタートに持ち込む監視用スクリプトを動かしておくと
いう方法で、どこまでいけるか見てみよう。

木下@キー・プランニング さんからのコメント
( Friday, April 03, 1998 22:40:40 )

>やれやれ。ま、しばらく様子を見ます。webSTAR がリスタートできなかったら
>サーバー自体を強制リスタートに持ち込む監視用スクリプトを動かしておくと
>いう方法で、どこまでいけるか見てみよう。

これは、AppleScriptでhttpサーバの動作をチェックするスクリプトという意味で
しょうか?
ファイルメーカーPro4.0のサーバでも使えるようなものでしたら、教えていただ
けると幸いです(ファイルメーカーのWebコンパニオンはまれにサービスを停止
してしまうことがあるので。この場合、アプリ再起動で復活する)。

田中求之 さんからのコメント
( Saturday, April 04, 1998 01:05:34 )

このサーバーで動かしているのは、単にアプリケーション(プロセス)の実行状況を
確認して、WebSTAR が落ちてたら再起動する(ある回数以上落ちるのが続くと
サーバー自体をリスタートする)というもので、http のコネクション自体の
チェックを行っているものではありません。

ただ、AppleScript で HTTP サーバにアクセスして、アクセスが出来ないときには
アプリケーションを再起動するというのは可能ですよ。 NetEvent を使ったものに
なりますが。

田中求之 さんからのコメント
( Saturday, April 04, 1998 01:43:32 )

>ただ、AppleScript で HTTP サーバにアクセスして、アクセスが出来ないときには
>アプリケーションを再起動するというのは可能ですよ。

即席のスクリプトですが、以下の様な感じです。OpenStay のアプリケーションとして
走らせておきます。約1分間に1度の割合でチェックを行います。

on run
  global quiter
  set quiter to false
end run


on idle
  global quiter
  if quiter then
    ---- ここでサーバー(ファイルメーカー等)をいったん落として再起動させる
    
    tell application "WebSTAR 3.0" to quit
    
    set waitTime to (current date) + 30 --- 30 秒待って再起動
    repeat until ((current date) > waitTime)
    end repeat
    
    tell application "WebSTAR 3.0" to activate
    
    set quiter to false
  else
    try
      tell application "NetEvents 1.0.1"
        --- コネクションを開いてすぐ閉じる
        set tgAddr to NameToAddr "xxx.yyy.zz.co.jp" --- サーバーのホスト名(IP)
        set sss to OpenStream tgAddr port 80 --- 場合によってはポートを変更のこと
        CloseStream sss
      end tell
    on error
      set quiter to true
    end try
    
  end if
  
  return 60
  
end idle

重松修 さんからのコメント
( Saturday, April 04, 1998 02:51:43 )

うちのQPQ2.1もたまに黙り込むので今スクリプトを仕込みました。
ありがとうございます>田中先生

木下@キー・プランニング さんからのコメント
( Saturday, April 04, 1998 11:14:46 )

田中さん、わざわざ実物を公開してくださって、ありがとうございます。

以前から自分でも作ってみようとは思っていたのですが、ファイルメーカーProが
黙ってしまう症状が出るのが非常にまれということと、NetEventsなどのツールの
使い方を勉強するのがおっくうで後回しにしていました。本当に助かります。

私のサイトはファイルメーカーProをサーバにして実験を行っていますので、
スクリプトをファイルメーカーPro用に多少書き換えて、説明分を付けて公開した
いと思います。

→  Key-planning Web

田中求之 さんからのコメント
( Saturday, April 04, 1998 13:45:43 )

本当に効果があるかどうかは、ちゃんと確かめてくださいね。

もしかしたら、単にコネクションを開くだけではチェックにならない可能性もあります。
その時には、ルートの HEAD を取るといった改良が必要です。

また、NetEvents を使わない方法としては、Chuck さんの作った SiteWatcher を
使うという方法があります。これですと、複数のサーバーもまとめて面倒見れます。

指定したサーバーが落ちていたときには、スクリプトを実行できるというツールです。
こちらを使った例も、今夜にでもアップしておきましょう。

→  Site Watcher Info

重松修 さんからのコメント
( Saturday, April 04, 1998 14:56:50 )

田中先生、残念ながら効果がありませんでした。

NetEventsがCan't find streamというふうな、エラーを表示しているにも
関わらず、QPQは終了されませんでした。(T_T)

上記のWebStarの部分をQPQにしただけではダメなのでしょうか。とりあえず、もうちょっと実験してみます。

田中求之 さんからのコメント
( Saturday, April 04, 1998 15:32:09 )

SiteWatcher を調べてみましたが、こちらもやっていることは同じ(Connection して
すぐ閉じる)でした。また、これを使ってアプリケーションの再起動に持ち込むのは
ちょいと面倒(エラーを発見したとき、繰り返しメッセージを発するため)という
ことも分かりました。

>NetEventsがCan't find streamというふうな、エラーを表示しているにも
>関わらず、QPQは終了されませんでした。(T_T)

了解です。ちょいとマジで(じゃぁ、いままでは何だったんだ (^_^;; )スクリプトの
ブラッシュアップをやります。エラーを検知したら即座に落とすのではなく、一定回数
連続してエラーなら落とすという方法に変更してみます。

重松修 さんからのコメント
( Saturday, April 04, 1998 15:55:56 )

調べてみました。

落として、30秒待って立ち上げる部分は、問題なく動作しました。しかし、
QPQが動作しているときはいいのですが、何らかの理由で、QPQがすでに
落ちているときには、終了するために立ち上げて、そしてまた、立ち上げ
ます。QPQの起動は結構時間がかかるため、
tell application "WebSTAR/QPQ" to quit
を実行する前に、当該アプリケーションが動作中か確認した方がよい
気がしました。

私のNetEventsが1.0b7でどうやら最新版ではないようです。これが原因かも
しれませんが、動作しない理由は、コネクションを開いてすぐ閉じることに
失敗しているにもかかわらず、on error以下に処理が分岐していないように
見受けられました。

ちなみに、私の環境は、Centris 650/32M/250MHD, MacOS 8.0J+QuidProQuo,
NetEvents 1.0b7で、他にNetPresentzも動作しています。CGIはFutureBASIC
で作成したカウンター、掲示板、検索システムが稼働しています。Plug-inは
未使用です。

田中求之 さんからのコメント
( Saturday, April 04, 1998 16:39:17 )

>tell application "WebSTAR/QPQ" to quit
>を実行する前に、当該アプリケーションが動作中か確認した方がよい
>気がしました。

なるほど、そうですね。

それと、コネクションの確認は、サーバーにはエラーとして記録されます
(何もリクエストを送らずに閉じるため)

それと、NetEvents は 1.01 が最新版です。かならず最新版を使ってください。

田中求之 さんからのコメント
( Saturday, April 04, 1998 16:41:16 )

あ、それと、昨夜書き込んだサンプルでは、エラーを検知してから1分後(つまり
エラーを見つけた次の idle 処理)で再起動のプロセスに入ります。エラーを見
つけてすぐに再起動処理には入りません。


木下@キー・プランニング さんからのコメント
( Saturday, April 04, 1998 16:42:23 )

ちなみに、先程ダウンロードしたNetEventsをみたら、バージョンは1.2になっておりました。

田中求之 さんからのコメント
( Saturday, April 04, 1998 17:07:28 )

>バージョンは1.2になっておりました。

あらら、バージョンがあがってますね。

とりあえず、1.01 で試した改良スクリプトを登録しておきました。

property であらかじめサーバーやアドレス、ポートを指定します。

MacOS 8.1 で試したのですが、もしかしたら 7.x ではアプリケーションが
活きているかどうかのチェックがうまくいかないかもしれません( Finder の
プロセスの扱いが変わったため。たぶん影響しないと思うのですが)

→  Server_check.hqx

田中求之 さんからのコメント
( Sunday, April 05, 1998 02:22:55 )

このサーバーも、サーバーのモニタリングのスクリプトをきちんと作って走らせ
始めたのですが、そのとたんに WebSTAR 3.0 は落ちなくなりました (^_^;;

おいおい(って、別に落ちて欲しいわけではないのですが)。

ま、世の中、こんなもんですね。で、どうせ、もう落ちないだろうと安心した途端に
落ちるに違いない。

田中求之 さんからのコメント
( Thursday, April 09, 1998 16:03:53 )

あいかわらず、不定期に落ちまくってます。落ちた瞬間のログの最後をその都度
記録するようにしてるのですが(再起動の際に、ログの最後の 1K を読んで別の
ファイルに転写させてます)、落ちる原因と思われるものは、まだ把握できてい
ません。

ただ、落ちるたびに再立ち上げをやってますが、これまでのサーバーだと、
たいてい3度目くらいの立ち上げの際にシステムが拒否していたのですが、
WebSTAR 3.0 は、起き上がり小法師のように平気で立ち上がります。
(1時間に6回再起動というのがあったのですが、平気でした)

奇麗に死んでくれるのは評価できるのですが (^_^;;  そもそも落ちてたら
困るんだけどな…

石津@RJC さんからのコメント
( Thursday, April 09, 1998 18:43:06 )

WebStar2.xまでは良く落ちたんですけど、うちでは3.0にしてから
まだ一度も落ちてないですね。もう70万ヒット無停止で動作して
います。

なんだかなー?

田中求之 さんからのコメント
( Sunday, April 12, 1998 00:19:30 )

サーバー監視をやらせてる CGI に FaceSpan でインターフェースを付けて、簡単な
異常終了の履歴を表示させるようにしたんですが、なんかどんどん増えていくのが楽しみ
になってきた (^_^;;

WebSTAR ML の方にも、ついに毎日4〜6回 QUIT するぞ、というコメントをポスト
しちゃいました(発作的にコメント書いてポストしたもんだから、後で見たら文章がお
かしい)

68K マックのユーザーで WebSTAR 3.0 へのアップグレードを考えている方は、
もうしばらく様子を見たほうがいいですよ。

おっと地震だ

たまちゃん さんからのコメント
( Sunday, April 12, 1998 01:11:17 )

リリースを急ぎすぎた分、3.0.1か3.1(?)なんかをリリースして、きっと名誉
挽回をするぞと思っていたら、田中さんも同じことを考えていたのですね。

すみません。wais.sensei.com.auで記事を読ませてもらいました。

安藤正人 さんからのコメント
( Sunday, April 12, 1998 04:08:59 )

私のところは、Mac OS 8.1 & PowerMac 8100/80av で動作させているのです
が、当初Mem Error という表示が頻繁にでて対処に苦労しました。

おっしゃられるとおり、差し当たって必要のないPlug-inを全て外し、各設定
を調整したところ今のところ順調に動いてるようです。

ただし、FTPがどうも不完全な気がします。とくにFetchとの組み合わせでは
Change Dir. でエラーになる回数が多いです。これを回避するためのコツは
非論理的ですが、アップロード後などにしばらく待つことなのですが、、、

他に不思議なことは、Netscape上からpi_admin.adminで設定する場合、
MISC. SettingのServer Nameの後ろに必ずコントロールコードのような
文字化けした記号がついてしまう事です。嫌なのでAdminで設定しなおし
ました。

田中求之 さんからのコメント
( Monday, April 13, 1998 03:28:19 )

参考までに、というと変ですが、このサーバーの異常終了(正確にはそれに伴う
再立ち上げ)の状況を確認できるページを作っておきました (^_^;;

StartUp というのは、サーバーマシン自体を起動(再起動)した時間で、
その後、再立ち上げを行なった場合に、Restart として日時が記録されて
いくようになってます。

WebSTAR 3.0 はこういう状況(出来)だということを分かってもらうのに
よいかと思います(もっとも、あくまでも私の LC 475 での実行の状況
ですが)。


→  http://mtlab.ecn.fpu.ac.jp/restart.mtlm

田中求之 さんからのコメント
( Tuesday, April 14, 1998 00:41:49 )

お、今日は1回しか死ななかったな。珍しい。

田中求之 さんからのコメント
( Tuesday, April 14, 1998 02:23:23 )

おお、初の24時間連続運転を樹立か?

田中求之 さんからのコメント
( Tuesday, April 14, 1998 17:03:52 )

お、落ちた落ちた(って喜んでどうする (^_^;; )

田中求之 さんからのコメント
( Thursday, April 16, 1998 15:20:47 )

今日は派手に落ちまくってるなぁ。

木下@キー・プランニング さんからのコメント
( Friday, April 17, 1998 02:25:11 )

先日アップされたServer_check.hqxを、サーバFMP4.0という環境で試させて
いただきたいます。

最初上手くいっているように見えたのですが、サーバがきちんと稼働している
にもかかわらず、NetEvents 1.2のウィンドウで
Killing idle connection
 Releasing stream (こちらだけの表示が多い)
という表示されるようになり、アプリが再起動されてしまいます。

Open
Close
のステップで、うまく「コネクションを開いてすぐ閉じる」ことができてない
のでしょうか?

木下@キー・プランニング さんからのコメント
( Friday, April 17, 1998 14:16:45 )

編集が不十分で日本語が変でした↑。読み苦しくて、失礼いたしました。

Server_checkを最前面にもってきて様子を見てみると、NetEvents 1.2のウィンドウで
OpenからCloseまでは、直ぐに反応しているのですが、その後、60秒間のwating
の後に、Releasing streamというメッセージが出てくるのがパターンのようです。
これを、3回繰り返すとサーバを再起動しにいきます。

www.key-planning.co.jpのポート591に対してアクセスさせているのですが、ブラウザ
から見る分には、サーバは全く問題なく動作しています。デモの都合でrootディレク
トリはインスタントWebが応答しているのですが、これが不味いのかな?

ちなみに、NetEventsのサンプル「HTTP Client example」で上記のURLにアクセス
すると、きちんとした応答がスクリプト編集プログラムの結果ウィンドウに残ります。

何故なんでしょう? 

田中求之 さんからのコメント
( Friday, April 17, 1998 15:15:34 )

Open して何もせずにすぐ Close すると、おっしゃるようなエラーになりますね。
私の方の注意不足でした。

HEAD リクエストをきちんと発行して、サーバーのレスポンスを確認するものに
作り替えますので、しばらくお待ちください。

重松修 さんからのコメント
( Friday, April 17, 1998 17:06:57 )

あと、バグではないんですが、再起動しようとすると、先にWWWサーバーが
終了して、その時運悪くチェックが入るとまた起動されてしまい、再起動が
失敗しました。

シャットダウン中にはチェックを行わないようになると嬉しいのですが。

田中求之 さんからのコメント
( Friday, April 17, 1998 17:14:44 )

別発言を作って、そこに改良版をリンクしておきました

→  サーバー監視スクリプト

木下@キー・プランニング さんからのコメント
( Friday, April 17, 1998 17:17:22 )

>あと、バグではないんですが、再起動しようとすると、先にWWWサーバーが
>終了して、その時運悪くチェックが入るとまた起動されてしまい、再起動が
>失敗しました。

Server_checkがサーバアプリを再起動するのは、コネクションに3回連続で失敗
した場合のはずなので、運悪くそれまでにチェック時に2回連続でコケテいたの
かもしれませんね。

でも、これはたぶんレアケースだと思いますが。

木下@キー・プランニング さんからのコメント
( Monday, April 20, 1998 09:44:28 )

NetEventsが、version 1.2.1になっていました。

→  NetEvents Info

田中求之 さんからのコメント
( Tuesday, April 21, 1998 01:22:59 )

あいかわらず、順調に (?) 異常終了を繰り返しているこのサーバーですが、
どうやら PDF の Byte Serving を実行しようとすると、確実に落ちる
ようです。今日の夕方、PDF のフォームから CGI を呼び出して処理させ
る実験をしていて気がつきました。それで、現在、このサーバーから byte
server Pluging を抜いてあります(PDF はちゃんと表示されますが、
一括ダウンロードになりますので注意してください)。

これで少しは終了が減るかな??

田中求之 さんからのコメント
( Wednesday, April 22, 1998 15:14:57 )

Byte Servring Plugin を抜いてから、順調に動いているようです。これまでの
異常終了は必ずしも PDF へのアクセスが原因ではないのですが、この Plugin
は、Filter 機能を果たすため、すべてのアクセスに関わりを持つようですので、
それが原因かなと思っています。

今のところ、連続運転記録を更新中です。

田中求之 さんからのコメント
( Thursday, April 23, 1998 12:39:20 )

どうやら、Byte Serving Plug-in が、異常終了の原因であったと断定しても
よいよいです。抜いてからは、落ちなくなりました(せっかく異常終了の状況を
とらえるために、あれこれとスクリプト組んだのに、ってちょっと寂しい (^_^;; )

2.1 までは Byte serving が問題を起こしたことが無かったので、最初は全然
疑っていなかったのですが、まさか、こいつだったとは…

ということで、どうやら WebSTAR 3.0 の異常終了の件は、ひとまず一件落着
(でも Plug-in を抜けばいいっていうのは、根本的解決ではないですけど)

で、明日の定期メンテの際に、Tanala's osax を 2.0b にして CGI を 
FaceSpan 3.0 で作り替えるという作業を行いますので、再び、不安定に
なるかもしれません (^_^;;

田中求之 さんからのコメント
( Monday, April 27, 1998 01:55:55 )

Byte Server Plug-in を抜いたら、てきめん落ちなくなりました。やっと
安定して使えるかなという状況になっています。

どうやら、とにかく、ど〜しても絶対必要だという Plug-in 以外は抜く、というのが
WebSTAR 3 運用の鉄則のようですね。