漠然としていて申し訳ありませんが、
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も見ています
-
【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
【お題】 ・存在しそうで存在しないモノマネ芸人の名前を教えてください
-
秘密基地、どこに作った?
小さい頃、1度は誰もが作ったであろう秘密基地。 大人の今だからこそ言える、あなたの秘密基地の場所を教えてください!
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
自分のセンスや笑いの好みに影響を受けた作品を教えて
子どもの頃に読んだ漫画などが その後の笑いの好みや自分自身のユーモアのセンスに影響することがあると思いますが、 「この作品に影響受けてるな~!」というものがあれば教えてください。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
IISワーカープロセスが原因でCPUが100%に
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
タスクマネージャの「プロセス...
-
プロセスのアタッチ・デタッチ...
-
起動しているプロセスの確認
-
SendMessageが失敗するときがある
-
タスクマネージャーのプロセス...
-
VB6.0 SHELLで起動...
-
プロセスが実行中かどうか調べ...
-
共有メモリの同時アクセスにつ...
-
WindowsAPIのCreateFile関数ま...
-
親子プロセス間でのデータの受...
-
Visual C++からpingを実行して...
-
子プロセスの利点
-
VB.NET 自プログラムのプロセス...
-
セマフォとmutexの違いは?
-
バッチファイルでPINGログ取得
-
.NETアプリケーションの戻り値
-
WebBrowserでPDF表示でのトラブル
-
VBS(WSH)で開いたIEのウィンド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
バックグラウンドのプロセスの...
-
C#でのbatファイル実行結果取得
-
explorer.exeが異様にメモリを食う
-
プロセスのアタッチ・デタッチ...
-
タスクマネージャーのプロセス...
-
怪しいプロセス教えてください。
-
非表示になったエクセルは?
-
Process.Startの戻り値を後で取得
-
ADOでアクセスのレコードに...
-
Windowsでのfork方法
-
プロセスIDからウィンドウハ...
-
他のコンピュータのプロセスを取得
-
SendMessageが失敗するときがある
-
プロセスが実行中かどうか調べ...
-
IISがフリーズ
-
ロードアベレージが高いのです...
-
プロセスIDの取得方法について
-
OSPFでプロセスを分ける意義に...
-
API関数 GetExitCodeProcess
-
別のプロセスの関数を呼び出す...
おすすめ情報