いとさん、確かに、httpd.exeのメモリ使用量が増加していました。詳しくは見ていないのですが、再起動させずに24時間ほど連続稼動させたところ、約1MBほど使用量が増加していました。
再起動させたところ、メモリ使用量は、だいたい元の値に落ち着いていました。
私の場合は最低でも12時間に一回ぐらいは再起動させていたので、(95やMeのころの習慣が残っているもので…)今まで気づきませんでした。
いとさん
私はWindowsXP Pro SP1a + Pentium!!! 866MHz + PC133 320MB ですが、
ものすごく快適に動いてくれています。
まぁ、アクセス数がごくわずかで、使用しているCGIもカウンタが3個ぐらい、しかも
毎日、ログを覗いたら再起動させているので、
参考にはならないでしょうが。
いとさん、
CGIの単一スレッドということだけではなく、普通のアクセスでの同時アクセスのつもりでした。
メモリ増加の話でも、メモリ増加があるのはかなりのアクセス数がある場合のようでしたし、アクセス数が多ければ同時アクセス(スレッドが複数になる)になると思ったからです。
中田さん、同時アクセスに関して。
以前は安定性を考えてずっと単一スレッドにチェックして使っていました。
ここ 2ヶ月くらいはチェックをつけたり外したりの状況であり、8/16のときは
外していました。
チェックをしていると確かに CGIが同時に実行されることはないのですが、
そのことが返ってまずい場合があることに気付き、チェックを外したのです。
まずい一例は、あるクライアントからせいぜい 20MBのファイルをアップロード
するCGIが 10分も時間がかかり、その間、他のクライアントから SSIを含む
ページや他の CGIへの要求が全く応答なしの状態になっていたというものです。
これは定常的に起きるのではなく、多分サーバ側の問題でもなくて、たまたま
その時そのクライアントが重かったかあるいはネットワークが重かったのでは
ないかと思っています。その時のログは HTMLやイメージファイルは CGI実行中
でも応答が返るので先に記録され、待たされたCGIとでは何分も(最大約10分)
時刻が逆転しているという現象が発生していました。
ログを過去にさかのぼって調べてみると、分単位で逆転現象が発生しているのは
大抵遅い CGIが足を引っ張ったからであり、しかもときどきそのような現象が
起きていることが分かりました。もちろん単一スレッドとしては正しく動作した
結果なのですが、その巻き添えで全体のアクセスが遅くなるのはたまらないと思い、
チェックを外して様子をみています。
前回書いたアプリケーションエラーのほとんどは単一スレッドにチェック有で
起きており、直近の 1-2はチェックなしのものですが、今のところはログで特に
気がついたことはありませんでした。ある程度の数が出ているので、まとめて
見直すと新しい発見があるかもしれませんので再度ログをながめ直してみようと
思います。
いとさん、
エラー発生アドレスがいろいろですからちょっとわかりませんが、同時アクセスが重なることが関係しているような気はしています。
ログに何かてがかりはないでしょうか?
中田さん、その後の状況報告です。
8/16に AN HTTPDがアプリケーションエラーで落ちました。
「めもりーくりーなー」を使い始めて以降、メモリ使用量は
最大でも 8,000 KBを超えたことはなく、AN HTTPDが落ちる
直接の原因ではなかったということになるかと思います。
なぜ増えるのかの謎は残ったままですが。
イベントビューアでは、過去に発生した httpd.exe の
アプリケーションエラーは以下が全てでした。
手掛りにはならない情報かもしれませんが、
エラー発生アドレスを記しておきます。
2004/08/16 0x000dde1f
2004/07/13 0x000de068
2004/06/30 0x000ddd74
2004/06/01 0x000ddd74
2004/05/21 0x000ddd74
2004/03/11 0x000ddd80
2004/02/27 0x000ddb4d
2004/02/07 0x000ddd80
2003/12/10 0x000ddd80
2003/11/21 0x0002906c
2003/10/27 0x000202e2
平均的には月一程度ということのようです。
打つ手がみつからない状態なので、Windowsの再起動の回数を
増やして様子を見てみようと思っています。
メモリ使用量についての報告その2:実家に1週間ぶりに帰ってきました。実家のサーバ機は、XP Pro SP1でアパートのマシンとまったく同じ(常駐ソフトなども)ですが、メモリ使用量はほとんど増えている様子はありませんでした。アパートのマシンでは半日程度(だと思いましたが)でメモリ使用量が100MBほど増えるような状態でしたので、この違いはなんだろうと思いました。なにか微妙な環境の違いによって左右されているのでしょうか…。
AN HTTPDが前のバージョンなので、役に立たない情報かもしれませんが、
下記環境で、2ヶ月以上連続稼働していますが、特にメモリの使用量が増大する現象は起きていません。
OS : WindowsXP SP1
CPU : Celeron 500
RAM : 384 MB
WebServer : AN HTTPD 1.42k
CGI : ActivePerl 5.6.1 build 635
いとさん、
「解明」は、そうなるとけっこう根本的な話なのかもしれません。
調べてみようと思います。
kirikax さん
情報どうもありがとうございます。
kirikax さん
情報ありがとうございます。他でも起きていたのですね。
WindowsXPなら必ず起きるのかどうか、さらに他の方からも
情報があるといいですね。しかし、必ず起きるのなら
もっと大騒ぎになっているのではという気もしますが。
めもりーくりーなー を試してみました。効果ありそうな感じです。
7/28に AN HTTPDを再起動し、直後のメモリ使用量が 6,260KB、
一週間連続稼動させて 8/4には 37,564KBまで増えていました。
めもりーくりーなー で 徹底的 にして clean を実行すると
3,328KBに減少しました。clean をさらにしつこく何度も繰り返すと
2,000KB以下まで下がりました。
とりあえず、タイマーを MAXの 60分にして動作させ、様子を見ることにします。
過去二度、再起動後 2週間後位にメモリ使用量が 60MBくらいになり、
AN HTTPDが落ちたのですが、因果関係については分かっていません。
これで一ヶ月位安定動作してくれればと期待しています。
一ヶ月もてば WindowsUpdateによる OSの再起動がいやでも来るでしょうから。
ただ、あくまで対症療法なので何とか解明できるといいですね。>中田さん
AN HTTPD をWindowsXP SP1、メモリ1GBにて使用させていただいております。
XPにおいて、メモリの使用量が増大する現象は、私のところでも出ています。
ですが、フリーウェアの めもりーくりーなー を使用して、30分おきに「徹底的」設定で掃除することによって、メモリ使用量は増大しなくなりました。ぜひ試してみてください。
http://www.crocro.com/pc/soft/mclean/
いとさん、
残念ながらその症状からただちに分かることはありません。つまり見当がついていません。
確かに他の WindowsXP を使っている人からの情報も欲しいところです。
私も WindowsXP を使っているので確認してみます。
中田さん
メモリ使用量が増える件、今一つ確信はないのですが
いろいろと試してたどり着いた仮説は
「OS が WindowsXP のときにメモリ使用量が増え続ける」
です。Windows2000ではこの現象はみられません。
メモリ使用量の増加は一気ではなく4KB, 8KBなどちりも積もれば式です。
HTTPバージョンは 1.0 でも Keep-Alive が 0でも起きます。
特定の CGIだからということではないようです。
CGIだけでなく HTMLへのアクセスでも増加することがあるようです。
以上から何か分かりますでしょうか?
WindowsXPでサーバを立てている皆さんは問題ないでしょうか?
いとさん、
そうなると今のところわかりません。
CGIの起動は process.log でと思いますが、CGIも無関係かもしれませんね。
あとは、持続接続のタイムアウトを 0 秒にする、あるいは HTTPバージョンを 1.0 にするのはどうでしょう。
中田さん
1.42kで、起動直後のメモリ使用量は 6,600KB、15分後には 8,500KB、
8時間後には 11,500KB まで増えました。
増加の具合は 1.42m とほとんど同じように思えます。
土日のアクセスは一桁少ないので、このまま火曜日一杯様子を見てみます。
CGIの起動数というのは process.log で見ればいいのでしょうか?
1.42kですが 8時間で 410回 Perlを実行しています。
内約 7割が SSIのカウンタで、他が掲示板などの CGIといった感じです。
適当に CGIにアクセスしても 4KB増える程度なので数MBも増える理由は
何なのかすぐには分かりません。問題なCGIはどれかを特定しないといけない
ということになるのでしょうか?
いとさん
そうするとインデックスリストは無関係でしょう。
いとさんでなくては頼めないことですが、
1.42kをお持ちでしたら、1.42kで様子をみてもらえるとありがたいです。
もし、1.42kである程度増加が抑えられるようなら CGIで増加するはずなので、1.42mでCGIの起動数とメモリ増加量とをみてもらうのでもよいかもしれません。
中田さん
「インデックスリスト(ディレクトリリスト)を表示」にチェックはありますが
「.www_browsableがあるディレクトリのみ表示」にもチェックがあり、
.www_browsableファイルを置いたディレクトリは一つもないので
インデックスリストは全く表示していません。
という状況なので、関係ないかもしれませんが「インデックスリストを表示」の
チェックを外してしばらく様子を見てみます。
いとさん、
過去ログの件と原因は関係ありそうです。以前は、インデックスリストの表示で特に使用メモリ量の増加がありました。
現在の症状もそうかどうかわかりませんが、もし、インデックスリストを表示するようにしている場合は、一時それを止めて同様かどうかみていただけるとありがたいです。
ただいずれにしてもメモリの開放の仕方の問題だろうと思うので、私の方で調べてみないと対策は難しそうです。
中田さん
OS: WindowsXP Pro, メモリ: 512MBのPCで社内運用しています。
AN HTTPDのバージョンは 1.42mです。
起動時の httpd.exe のメモリ使用量は約 7MBなのですが、
4MB/日 くらいずつ増加します。
6/18に AN HTTPDを起動し、連続動作していたのですが 6/30に
AN HTTPDが落ちました。再起動後、本日(7/13)また落ちました。
メモリ使用量がどこまで大きくなったか正確な数値は不明ですが、
どちらの場合も 60MB位ではないかと思います。
メモリ使用量が増えることと落ちることに因果関係があるのかどうか不明ですが
ログには特に気になるアクセスは残っていません。
メモリ使用量が増え続ける原因として何が考えられるでしょうか?
ログの更新を毎月にしており、httpd.log, referer.log, ua.log の合計が
一日 4MBずつくらい増えるのですがこれは多分関係ないでしょうね?
とりあえず毎週一回手動で再起動して様子をみようと考えています。
他に何か手があるでしょうか?
過去ログでは下記がみつかりました。関係あるでしょうか?
http://homepage1.nifty.com/yito/namazu/gbook/20020914.1551.html