
漠然としていて申し訳ありませんが、
Windows Server 2000 + IIS5.0 + ASPで
イントラネット用のサイトを構築していますが、
一日に一度くらいの割合で、サイトが反応しなくなり、
IISを再起動が必要になってしまいます。
システムのイベント
IISのログ
等に不正だった痕跡は残っていません。
現在、分離プロセスで動かしています。
また、たまに DLLHISTがCPU100%の状態が続くことがあり、
ワームの感染について調べましたが、
その可能性はないようです。
どなたか、このような状況についてご存知の方がいらっしゃったら、アドバイスをお願いいたします。
No.7ベストアンサー
- 回答日時:
#3、#5、#6です。
> その様な場合、タスクマネージャの"DLLHOST"のメモリ使用量は、600人の時は人数に応じて増加し、
> 終了後は、完全に元に戻るのでしょうか?
完全な統計をとったわけではないのですが、600→100人にアクセス数が落ちるとメモリ使用量は減少していました。
Cで作成したDLLの不具合の件です。
どこにメモリリークするか、と聞かれての推測ですが
おそらくDLLHOSTかと。
DLLの開発はしたことがないので以下、推測になります。
断言はできないですが、メモリリークというかIISがフリーズした原因はおそらくコレでしょう。
DLLでのミスはOSに致命的なダメージを与えます。
ご存知かと思いますが、C言語は非常に融通の効く言語です。
ASPと違って幅広く開発できる一面、バグがあるとシステムを不安定にさせる要因にもなります。
WinSockはおそらくAPIを使っていますよね?
APIはシステムに密接に関連するところですし、メモリまわりで不具合が出て、
OSやIISの動作にも影響が出たと推測するのが妥当、かと。
いろいろありがとうございました。
DLLは本当に怪しいのですが、
メモリリーク等の具体的な現象も把握できない状況では
なかなか修正の許可が下りない(フリーズの対処として)
ので困っていましたが、
やはり一度DLLを直し様子を見ようと思います。
(できればプールプロセスも)
No.8
- 回答日時:
慣例に従い、#2、#4です。
(汗)>また、少し話がそれそうですが、最後にもう一つ、
>実は、ソケット関連の処理にミスがあり、
>クライアント側で recv 前に ソケットを再定義してしまい、
>recv で Winsock の WSAENOTSOCK"10038" のエラーが発生しました。
>当然その後の close も出来ず、 WSACleanup も出来ませんでした。
Cで作成したDLLをCOMコンポーネントとして登録しているんですよね。これに不具合があれば致命的なんでしょうね。
以下、IIS 5.0 Documentation からです。
パフォーマンスとアプリケーションの保護レベルは、両方を十分に満たすことのできないトレードオフの関係にあります。Web サービスのプロセス (inetinfo.exe) でアプリケーションを実行するとパフォーマンスは向上しますが、アプリケーションが誤動作した場合に Web サービスが利用できなくなるリスクが増大します。inetinfo.exe、また必須のアプリケーションは、そのもののインプロセスで、その他のアプリケーションは共有のプール インプロセスで実行することをお勧めします。
また、
> APで用意した改ページボタン、ブラウザの戻るボタン、ガンガン押された場合、
にサーバに負荷がかかる件ですが、
改頁ボタンの対策は、#3、#5、#6さんのおっしゃる手法が定石かと。。。戻るボタンを無効(左右されないようにする)にする方法もいろいろあるかと。。。
いろいろありがとうございました。
>Cで作成したDLLをCOMコンポーネントとして登録しているんですよね。これに不具合があれば致命的なんでしょうね。
やはりそうですか。
これを修正し様子を見ることにします。
No.6
- 回答日時:
#3、#5です。
> やはり負荷の問題と思われますが・・・。
どれぐらいの負荷がかかるのでしょうか?
私の環境では、一時間に600人がガリガリ動かしても
全く問題なかったですよ(^^
(メモリ使用量はそれなりに増加しましたが、全然余裕でした。)
その時はサーバ処理能力うんぬんより、ネットワークがかなり遅くなりました。SSL通信しているので、さらに遅くなります。。。
> APで用意した改ページボタン、ブラウザの戻るボタン、ガンガン押された場合、
> (以下略)
参照のみであれば、整合性うんぬんはないと思います。ただし、2回ボタンをクリックすれば、処理は2回走るはずです。(推測)
参考までに。
こちらのシステムではJavaScriptで、ボタンを1回しか押せないよう制御をかけています。
外部公開向けシステムなので、クライアント側でJavaScriptが無効になっていると意味がないですが。。。
何度も申し訳ありません。
>私の環境では、一時間に600人がガリガリ動かしても
>全く問題なかったですよ(^^
その様な場合、タスクマネージャの"DLLHOST"のメモリ使用量は、600人の時は人数に応じて増加し、
終了後は、完全に元に戻るのでしょうか?
また、少し話がそれそうですが、最後にもう一つ、
実は、ソケット関連の処理にミスがあり、
クライアント側で recv 前に ソケットを再定義してしまい、
recv で Winsock の WSAENOTSOCK"10038" のエラーが発生しました。
当然その後の close も出来ず、 WSACleanup も出来ませんでした。
この、ポートがクローズ出来ていない事や、
ソケット(パケット?)が中に浮いてしまった事での
メモリリークの可能性は大きいでしょうか?
また、もしリークするとしたら、
タスクマネージャのどのプロセスに現れるのでしょうか?
すっかり甘えていますが、この辺りもお詳しい様でしたらお願い致します。
No.5
- 回答日時:
> また、1Gのメモリを実装していて、28M程度の使用メモリで落ちているようなのですが、
> 実際、使いすぎでしょうか?
いえ、問題ないと思います。
ソース側で問題ないとしたら、、、
#2さんがおっしゃる「プールプロセスで安定」を試すのがいいと思います。
ちなみに、私の環境もメモリ1Gで、プールプロセスで動いています。
参考までにお尋ねしたいのですが、IISがフリーズするタイミングは特定の条件なのでしょうか?
このasp実行時にフリーズするとか、更新画面で停止するとか。。。
原因の切り分けができるといいのですが。。。
度々ありがとうございます。
タイミングですが、
イントラネットという事で切り分けは難しいのですが、
私のテスト環境では全く起きませんので、
やはり負荷の問題と思われますが・・・。
ちなみに、ASPでは、
例えば、せっかちなユーザさんがいて、
APで用意した改ページボタン
ブラウザの戻るボタン、
ガンガン押された場合、
処理の整合性を保つためにアプリ側での
必須の処理等はあるのでしょうか?
(処理的には、ブラウザからの要求で、Cで作ったソケット関連のDLLを介し、サーバのDBに参照のみ行う感じです。)
No.4
- 回答日時:
#2です。
「プールプロセス」にすれば安定することはあり得ます。
一説によると、IIS 4.0の「分離プロセス」では、bugとかで安定しないことがあるようです。
IIS 5.0については定かではありませんが。。。
IISで不可思議な挙動=プログラムの仕業ではなかったことって結構ありました。(これは私だけ?かも。。。)
度々ありがとうございます。
>IISで不可思議な挙動=プログラムの仕業ではなかったことって結構ありました。
やはりそうですか・・・
ソケット解放を対応したAP+プールプロセスで安定してくれればいいのですが・・・。
とりあえず様子見ですね。
No.3
- 回答日時:
> あるクライアントで無限ループに陥った場合、
> それは、全てについて影響し、IISのリセットにつながるのでしょうか?
メモリリークしてIIS、というかサーバ(OS)自体が停止することがあります。
無限ループに限らず、プログラム内でのオブジェクトの解放し忘れがあっても、
小さいことが積み重なってメモリリークが大量に発生して
サーバが停止することがあります。
大量アクセスのWin系サーバでは一日に一回、夜間で再起動を行うのが一番堅いです。
(私のてがけるシステムでは、そのようにしています。)
DLLHOSTがCPU100%になる、というのは通常はあまりありえませんね。
プログラムに何か問題があるかもしれません。
どのプログラム(ソース)に問題があるのか、原因を突き止める必要があるかもしれませんね。
少しずつ画面を動かして、DLLHOSTが100%になるタイミングを手作業で調べてみてはいかがでしょうか。
この回答への補足
ありがとうございます。
ソースを見たところ、
ソケットを解放していない場合がありこれを解消しテスト環境で動かした所、
プロセスが使うメモリが少なくなった感じはありません。
タスクマネージャのプロセスで"DLLHOST"の使用メモリが増えていく=メモリリークと考えて間違えないでしょうか?
また、1Gのメモリを実装していて、28M程度の使用メモリで落ちているようなのですが、
実際、使いすぎでしょうか?
以上、申し訳ありませんが宜しくお願いいたします。
No.2
- 回答日時:
はじめまして。
>この分離プロセスでは、
> クライアントがサイトを開く毎に"DLLHOST"のプロセスがサーバで立ち上がるのでしょうか?
そのご解釈でよろしいかと思います。
> そしてもし、これらも含めてリソース不足等の問題が発生しIISの動作に影響した場合、I
> ISのログやサーバイベントになんらかの痕跡が残っているものなのでしょうか?
IIS自体に影響する問題が発生した場合、正しい痕跡が残される可能性はあまり高くないと思われます。
「プールプロセス」ではマズイ事情がおありなんでしょうか?
この回答への補足
ありがとうございます。
>IIS自体に影響する問題が発生した場合、正しい痕跡が残される可能性はあまり高くないと思われます。
やはりそうなのですね。
>「プールプロセス」ではマズイ事情がおありなんでしょうか?
問題ないはずです。こちらの方が安定しますか?
No.1
- 回答日時:
ソースに無限ループになる可能性のある記述って無いですか?
レアなケースで起こりえるとかも考えられますので、チェックしてみてはどうでしょうか?
ソースが無ければこれくらいの事しかいえませんが…。
この回答への補足
早速有難うございます。
IISやASPについて不勉強なもので初歩的な質問ですが、
あるクライアントで無限ループに陥った場合、
それは、全てについて影響し、IISのリセットにつながるのでしょうか?
また、質問が少し変わりますが、
分離プロセスで動かすと、
サーバのリソースを多く消費するとMSのサポート等にあります。
この分離プロセスでは、
クライアントがサイトを開く毎に"DLLHOST"のプロセスがサーバで立ち上がるのでしょうか?
そしてもし、これらも含めてリソース不足等の問題が発生しIISの動作に影響した場合、I
ISのログやサーバイベントになんらかの痕跡が残っているものなのでしょうか?
申し訳ありませんが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン ん~…分からん 7 2022/06/10 10:47
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
- デスクトップパソコン パソコン買い換えたほうがいい? 8 2022/11/11 19:05
- au(KDDI) 特定の画面を見るとスマホが固まります ご覧頂き有難うございます。 特定のページを見るとスマホが固まり 1 2023/08/21 19:29
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- 分譲マンション 中古マンション契約前の故障について 5 2022/10/05 22:41
- Windows 10 PCでゲームをやるとPC再起動必須のフリーズになります 4 2023/02/17 11:29
- 日本株 SBI証券HYPER SBI 2のエラー 1 2023/01/31 13:38
- IT・エンジニアリング 企業におけるデータ管理方法についてみなさまのお考えを教えてください。 1 2023/04/15 22:34
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・昔のあなたへのアドバイス
- ・字面がカッコいい英単語
- ・許せない心理テスト
- ・歩いた自慢大会
- ・「I love you」 をかっこよく翻訳してみてください
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・はじめての旅行はどこに行きましたか?
- ・準・究極の選択
- ・この人頭いいなと思ったエピソード
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・【お題】甲子園での思い出の残し方
- ・【お題】動物のキャッチフレーズ
- ・人生で一番思い出に残ってる靴
- ・これ何て呼びますか Part2
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・あなたが好きな本屋さんを教えてください
- ・かっこよく答えてください!!
- ・一回も披露したことのない豆知識
- ・ショボ短歌会
- ・いちばん失敗した人決定戦
- ・性格悪い人が優勝
- ・最速怪談選手権
- ・限定しりとり
- ・性格いい人が優勝
- ・これ何て呼びますか
- ・チョコミントアイス
- ・単二電池
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・泣きながら食べたご飯の思い出
- ・一番好きなみそ汁の具材は?
- ・人生で一番お金がなかったとき
- ・カラオケの鉄板ソング
- ・自分用のお土産
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
起動しているプロセスの確認
-
怪しいプロセス教えてください。
-
警告『 別のプロセスで使用され...
-
バックグラウンドのプロセスの...
-
ADOでアクセスのレコードに...
-
プロセスのアタッチ・デタッチ...
-
VB6.0 SHELLで起動...
-
スペシャルねこまんま57号について
-
パイプ
-
プロセスハンドル or ウインド...
-
子プロセスのデータを親プロセ...
-
Linuxでのスレッド間メッセージ...
-
C#でのbatファイル実行結果取得
-
パソコンに出てくるじゃまな表...
-
書きのパイプを「親」と呼ぶ理由
-
コマンド実行時の結果のリダイ...
-
WSH.Runで待機できません
-
Ready Boostについて
-
プロセスIDの取得方法について
-
execlしない・・・
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
プロセスIDの取得方法について
-
プロセスのアタッチ・デタッチ...
-
VB6.0 SHELLで起動...
-
ADOでアクセスのレコードに...
-
非表示になったエクセルは?
-
タスクマネージャーのプロセス...
-
vb.netでEXCEL起動がうまくでき...
-
explorer.exeが異様にメモリを食う
-
怪しいプロセス教えてください。
-
VB.NET 自プログラムのプロセス...
-
Process.Startの戻り値を後で取得
-
OSPFでプロセスを分ける意義に...
-
sleep関数の精度について
-
別のプロセスの関数を呼び出す...
-
セマフォとmutexの違いは?
-
WSH.Runで待機できません
-
警告『 別のプロセスで使用され...
-
VBS(WSH)で開いたIEのウィンド...
おすすめ情報