locked
IIS6.0と8.0のガーベージコレクションの起動条件について RRS feed

  • 質問

  • IIS6.0・8.0のガーベージコレクションの取り扱いの違いについて

    八木と申します。

    「ガベージ コレクションの条件
      ガベージ コレクションは、次のいずれかの条件に当てはまる場合に発生します。
        システムの物理メモリが少ない場合。
        マネージ ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。
        このしきい値は、プロセスの進行に合わせて絶えず調整されます。
        GC.Collect メソッドが呼び出された場合。 ほとんどの場合、ガベージ コレクターは

      継続して実行されるため、このメソッドを呼び出す必要はありません。
        このメソッドは、主に特別な状況やテストで使用されます。 」

    上記の条件以外で
    IIS6.0と8.0のVisualC#における
    それぞれのガーベージコレクションの
    起動条件の違いなどありますでしょうか。

    また、
    「マネージ ヒープで割り当てられたオブジェクトによって使用されているメモリが、許容されるしきい値を超える場合。」

    上記の「しきい値」を調べるには
    どのようにすればよろしいでしょうか。

    もし何か情報があれば教えていただければと存じます。

    2014年9月19日 5:43

回答

  • こんにちは、智弘八木 さん
    フォーラムオペレータの佐伯 玲 です。

    現在似た内容のスレッドをいくつか投稿いただいている状態となっております。
    SurferOnWwwさんからのご指摘にある「質問の背景(本来実現したいこと)」に絞ってご質問いただけると回答も得られやすいですしご質問も分散することなく統合出来るのではないでしょうか?

    その過程で当初の質問は解決したものの新たな疑問点等があった場合には一旦スレッドに区切りをつけ改めてスレッドを異なる形でご投稿いただけましたらと思います。

    ひとまずこの話題については以下のスレッドのほうで進めて頂きこちらのスレッドはクローズという形にさせていただきます。

    .netFrameWork 2.0と.netFrameWork4.0のガーベージコレクションの起動・挙動の違いについて
    http://social.msdn.microsoft.com/Forums/ja-JP/b004a796-0b3d-486a-8988-8bac5afd33bc/netframework-20netframework40


    宜しくお願い致します。

    TechNet Community Support 佐伯 玲

    • 回答としてマーク 佐伯玲 2014年9月19日 7:49
    2014年9月19日 7:49

すべての返信

  • > 「ガベージ コレクションの条件・・・

    何かを引用したのだと思いますが、出展を書けませんか?


    > 上記の条件以外で
    > IIS6.0と8.0のVisualC#における
    > それぞれのガーベージコレクションの
    > 起動条件の違いなどありますでしょうか。

    どういう意味でしょう? C# で書かれた ASP.NET の Web アプリを IIS6 または IIS8 上で動作させた場合「ガベージ コレクションの条件・・・」に当てはまらないケースがあるか、あるとするとそれは具体的にどういうケースかという質問ですか? 質問の背景を書けないでしょうか?

    【追伸】

    上で、「質問の背景を書けないでしょうか?」と書いた理由は、私以外にも、たぶんほとんどの閲覧者の方が何故そんなことを聞くのか、それを聞いてどうするのかが疑問で、そのあたりをクリアにすると的を得た回答が得やすいのではないかと思うからです。

    • 編集済み SurferOnWww 2014年9月19日 6:24 追伸追加
    2014年9月19日 6:01
  • >> 「ガベージ コレクションの条件・・・
    >
    >何かを引用したのだと思いますが、出展を書けませんか?
    出典はこちらになります。
    http://msdn.microsoft.com/ja-jp/library/ee787088%28v=vs.100%29.aspx

    >> 上記の条件以外で
    >> IIS6.0と8.0のVisualC#における
    >> それぞれのガーベージコレクションの
    >> 起動条件の違いなどありますでしょうか。
    >
    >どういう意味でしょう?
    >C# で書かれた ASP.NET の Web アプリを IIS6 または IIS8 上で動作させた場合「ガベージ コレクションの条件・・・」に当てはまらないケースがあるか、
    >あるとするとそれは具体的にどういうケースかという質問ですか?
    >質問の背景を書けないでしょうか?
    背景としましては
    ある案件で
    ・WindowServer2003R2→2012R2
    ・IIS6.0→IIS8.0
    ・.net Framework2.0→4.0
    ・メモリ:12GB
    ・言語:VisualC#

    に環境をかえて、処理を実行した処
    「該当のワーカープロセスのメモリ使用率が100%近くになってしまい
      処理のフリーズが発生する。」
    現象が発生しております。

    開発者の方から、「本来は、上記のような状態になれば
    ガーベージコレクションが起動し、不要なメモリが
    解放され、処理が再起動される。(処理フリーズは起きない。)」

    上記の原因調査について
    ・.netFrameWork2.0と4.0でガーベージコレクションの挙動について
      差異があるのか調査してほしい。
    ・.netFramework4.0でガーベージコレクションによりアプリ上で
     使用したメモリを正しく解放するにはどのようにすればよいのか。
     net Framework2.0→4.0に移行時に、設定しなければならないことが
     あるのであれば調査してほしい。
    ということとなります。

    上記の事象で想定される原因のあたりがつかず
    どこから手を付けていいかわからない状態です。

    もし何か情報があればと考え質問をさせていただいた次第です。
    2014年9月19日 7:04
  • このスレッドを含め、過去に質問者さんが立てた 8 つのスレッドは、すべて同じ問題が背景となっているのですよね。であれば、一つのスレッドにまとめられるはずです。

    同じ問題を、.NET のバージョンと IIS のバージョン別に、別スレッドを立てて質問するなんてのは最悪のやり方です。一つにまとめてください。スレッドの乱立は、はっきり言って迷惑です。止めてください。

    それから、過去に回答をもらっておきながら、中途半端に放置したスレッドがありますが、今後、最後まできちんとフォローしていただけるでしょうか?


    • 編集済み SurferOnWww 2014年9月19日 7:26 誤字訂正
    2014年9月19日 7:24
  • こんにちは、智弘八木 さん
    フォーラムオペレータの佐伯 玲 です。

    現在似た内容のスレッドをいくつか投稿いただいている状態となっております。
    SurferOnWwwさんからのご指摘にある「質問の背景(本来実現したいこと)」に絞ってご質問いただけると回答も得られやすいですしご質問も分散することなく統合出来るのではないでしょうか?

    その過程で当初の質問は解決したものの新たな疑問点等があった場合には一旦スレッドに区切りをつけ改めてスレッドを異なる形でご投稿いただけましたらと思います。

    ひとまずこの話題については以下のスレッドのほうで進めて頂きこちらのスレッドはクローズという形にさせていただきます。

    .netFrameWork 2.0と.netFrameWork4.0のガーベージコレクションの起動・挙動の違いについて
    http://social.msdn.microsoft.com/Forums/ja-JP/b004a796-0b3d-486a-8988-8bac5afd33bc/netframework-20netframework40


    宜しくお願い致します。

    TechNet Community Support 佐伯 玲

    • 回答としてマーク 佐伯玲 2014年9月19日 7:49
    2014年9月19日 7:49
  • ご迷惑をおかけして申し訳ありません。

    2014年9月19日 8:17