漠然としていて申し訳ありませんが、
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も見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
「覚え間違い」を教えてください!
私はかなり長いこと「大団円」ということばを、たくさんの団員が祝ってくれるイメージで「大円団」だと間違えて覚えていました。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
うちのカレーにはこれが入ってる!って食材ありますか?
カレーって同じルーから作っても、家庭によって入っているものや味が微妙に違っていて面白いですよね! 「我が家のカレーにはこれが入ってるよ!」 という食材や調味料はありますか?
-
IISワーカープロセスが原因でCPUが100%に
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~12/2】 国民的アニメ『サザエさん』が打ち切りになった理由を教えてください
- ・ちょっと先の未来クイズ第5問
- ・【お題】ヒーローの謝罪会見
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
Windowsでのfork方法
-
ADOでアクセスのレコードに...
-
c言語でプロセスIDを調べたい
-
API関数 GetExitCodeProcess
-
プロセスのアタッチ・デタッチ...
-
ウィンドウのタイトルからプロ...
-
GetModuleFileNameでエラーが出...
-
子プロセスのデバッグ方法について
-
VC++6.0 「プロセスへ...
-
プロセスIDの取得方法について
-
他のコンピュータのプロセスを取得
-
C++でシェルを起動
-
非表示になったエクセルは?
-
WebBrowserでPDF表示でのトラブル
-
AF_UNIXのsocketと共有メモリを...
-
Process.Startの戻り値を後で取得
-
SendMessageが失敗するときがある
-
外部プロセスを終了したい!!
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
explorer.exeが異様にメモリを食う
-
プロセスのアタッチ・デタッチ...
-
タスクマネージャーのプロセス...
-
怪しいプロセス教えてください。
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
他のコンピュータのプロセスを取得
-
プロセスIDからウィンドウハ...
-
SendMessageが失敗するときがある
-
プロセスが実行中かどうか調べ...
-
IISがフリーズ
-
ロードアベレージが高いのです...
-
プロセスIDの取得方法について
-
OSPFでプロセスを分ける意義に...
-
API関数 GetExitCodeProcess
-
別のプロセスの関数を呼び出す...
おすすめ情報