none
Windows Server 2008 R2 データ コレクタ のトレース情報のサイズ

    質問

  • 1週間ごとにデータ収集を行っていますが、

    ある時点からトレース情報のファイルサイズが20GB以上になっています。

    最大80GBになっている時もありました。

    このトレース情報は運用期間が長くなるのに比例してファイルサイズも大きくなるものなのでしょうか?

    なお、運用開始は2012年3月で、5月くらいからファイルサイズがGB単位になりました。

    • 移動 Yuanli Guo 郭远丽 2012年10月2日 10:03 merge (移動元:Windows Server 2008 R2 全般)
    2012年6月8日 15:33

回答

  • なるほど。疑問点は、"トレースのログサイズ制限をかけない場合、ログはどの程度大きくなるのか?" という事でしょうか。
    最初の投稿文からは、ちと読み取れない疑問点です。

    それは置いといて、まずMSDNの情報を見ると、MaximumFileSize は ULONG と定義されています。ULONG MAX は、4294967295 ( 0xffffffff ) なので、これを見ると、4294967295 メガバイトまでは指定できるようです。

    EVENT_TRACE_PROPERTIES structure
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa363784(v=vs.85).aspx

    ULONG        MaximumFileSize;

    MaximumFileSize
    Maximum size of the file used to log events, in megabytes


    次に、実際に logman コマンドで指定してみます。
    MaximumFileSize > ULONG_MAX を指定すると、範囲外のエラーがでます。MSDN の言うとおり、ULONG MAX の制限はかかっています。

    ULONG_MAX/2 < MaximumFileSize = ULONG_MAX を指定した場合は、"パラメーターが間違っています。" エラーになります。実際の動作を見ると、MaximumFileSize は ULONG_MAX/2 を超えることは無いようです。

    MaximumFileSize < ULONG_MAX/2 の場合は、"ディスクに十分な空き領域がありません。" になります。( 実際に、こんなにはディスク容量は無い環境です )
    この動作を見る限り、ディスク容量さえ足りていれば、ULONG_MAX/2 ( 2147483647 メガバイト ) までは指定できます。

    しかしながら、ntfs のファイルサイズの制限の方に先に引っかかるようです。
    http://technet.microsoft.com/ja-jp/library/cc779002(v=ws.10).aspx
    ファイルの潜在的な最大サイズは 16 TB から 64 KB を差し引いたサイズですが、ファイルを、そのファイルが存在するボリュームまたはパーティションより大きくすることはできません。


    理論上は、16TB - 64 KB までログが増大するかもしれません。テラびっくり。

    また、ログサイズに制限が掛かっているかどうかは、実際に確認する必要があります。" いままでは 2GB のファイルしか作成されなかった。でもよく見たら、ツールが自動的にファイルサイズを制限していた " という落ちもあり得るからです。

     


    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 4294967296 -ets

    エラー:
    範囲外です。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 4294967295 -ets

    エラー:
    パラメーターが間違っています。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 2147483648 -ets

    エラー:
    パラメーターが間違っています。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 2147483647 -ets

    エラー:
    ディスクに十分な空き領域がありません。

     

    2012年6月13日 2:26

すべての返信

  • 外していたら申し訳ありませんが、過去ログがあります。
    http://social.technet.microsoft.com/Forums/ja-JP/windowsserver2008ja/thread/4e0e8079-eacc-475d-ab1a-6af38f75ff8c

    したのKBに修正プログラムがあるようです。
    http://support.microsoft.com/kb/974248


    試験問題作成委員会(http://shikenmondai.blog.shinobi.jp/)

    2012年6月10日 0:47
  • 返信が遅くなり申し訳ありません。

    知りたい情報としては、トレース情報(NT Kernel)のファイルサイズが数10GBになる場合があることが、

    正常な状態なのかということでした。

    提示していただいた修正バグについては、認識していませんでしたので、参考になりました。

    パッチを適用するかどうかは調査中(検討中)です。

    ありがとうございました。

    2012年6月11日 14:48
  • トレース情報の場合、トレース作成時にログのサイズを指定可能ですので、まずここを確認してみてください。
    制限をかけなければ、トレースログはどんどん蓄積されます。
    "NT Kernel" というのは、ETW Provider の Windows Kernel Trace の事でしょうか ?

    例えば logman コマンドの場合、Windows Kernel Trace のトレース開始時、-max オプションでログのサイズを制限します。
    その後、logman query コマンドの " Segment Max Size " でログサイズを確認できます。

    トレース開始ツールにも依存しますので、ツールのヘルプを確認し、ログサイズの設定が可能かどうか、確認してみて下さい。


    .コマンド例

     

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 200 -ets
    The command completed successfully.

    C:\>logman query "NT Kernel Logger" -ets

    Name:                 NT Kernel Logger
    Status:               Running
    Root Path:            C:
    Segment:              Off
    Schedules:            On
    Segment Max Size:     200 MB

    Name:                 NT Kernel Logger\NT Kernel Logger
    Type:                 Trace
    Output Location:      C:\NT Kernel Logger.etl
    Append:               Off
    Circular:             Off
    Overwrite:            Off
    Buffer Size:          8
    Buffers Lost:         0
    Buffers Written:      131
    Buffer Flush Timer:   0
    Clock Type:           Performance
    File Mode:            File

    Provider:
    Name:                 Windows Kernel Trace
    Provider Guid:        {9E814AAD-3204-11D2-9A82-006008A86939}
    Level:                0
    KeywordsAll:          0x0
    KeywordsAny:          0x1002307 (process,thread,img,disk,file,hf,profile)
    Properties:           0
    Filter Type:          0

    The command completed successfully.

    2012年6月12日 2:58
  • NT Kernelはwindows server 2008のパフォーマンスモニタのトレース情報(カーネルトレースプロバイダ)になります。

    ご指摘のとおり、サイズを制限すればよいのですが、

    サイズ自体が巨大なので、頻繁にログが上書きされ、採取できないログが多いと運用上問題があります。

    手元の環境では再現しないですし、そもそも大きいサイズ(数10GB超)が作成されることに疑問を感じています。

    マイクロソフトに問い合わせるようになったので、そちらでも確認をする予定です。

    (1週間くらいかかりそうなのが難点。。。)

    2012年6月12日 17:26
  • なるほど。疑問点は、"トレースのログサイズ制限をかけない場合、ログはどの程度大きくなるのか?" という事でしょうか。
    最初の投稿文からは、ちと読み取れない疑問点です。

    それは置いといて、まずMSDNの情報を見ると、MaximumFileSize は ULONG と定義されています。ULONG MAX は、4294967295 ( 0xffffffff ) なので、これを見ると、4294967295 メガバイトまでは指定できるようです。

    EVENT_TRACE_PROPERTIES structure
    http://msdn.microsoft.com/en-us/library/windows/desktop/aa363784(v=vs.85).aspx

    ULONG        MaximumFileSize;

    MaximumFileSize
    Maximum size of the file used to log events, in megabytes


    次に、実際に logman コマンドで指定してみます。
    MaximumFileSize > ULONG_MAX を指定すると、範囲外のエラーがでます。MSDN の言うとおり、ULONG MAX の制限はかかっています。

    ULONG_MAX/2 < MaximumFileSize = ULONG_MAX を指定した場合は、"パラメーターが間違っています。" エラーになります。実際の動作を見ると、MaximumFileSize は ULONG_MAX/2 を超えることは無いようです。

    MaximumFileSize < ULONG_MAX/2 の場合は、"ディスクに十分な空き領域がありません。" になります。( 実際に、こんなにはディスク容量は無い環境です )
    この動作を見る限り、ディスク容量さえ足りていれば、ULONG_MAX/2 ( 2147483647 メガバイト ) までは指定できます。

    しかしながら、ntfs のファイルサイズの制限の方に先に引っかかるようです。
    http://technet.microsoft.com/ja-jp/library/cc779002(v=ws.10).aspx
    ファイルの潜在的な最大サイズは 16 TB から 64 KB を差し引いたサイズですが、ファイルを、そのファイルが存在するボリュームまたはパーティションより大きくすることはできません。


    理論上は、16TB - 64 KB までログが増大するかもしれません。テラびっくり。

    また、ログサイズに制限が掛かっているかどうかは、実際に確認する必要があります。" いままでは 2GB のファイルしか作成されなかった。でもよく見たら、ツールが自動的にファイルサイズを制限していた " という落ちもあり得るからです。

     


    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 4294967296 -ets

    エラー:
    範囲外です。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 4294967295 -ets

    エラー:
    パラメーターが間違っています。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 2147483648 -ets

    エラー:
    パラメーターが間違っています。

    C:\>logman -start "NT Kernel Logger" -p {9E814AAD-3204-11D2-9A82-006008A86939} (process,thread,img,disk,file,hf,profile) -max 2147483647 -ets

    エラー:
    ディスクに十分な空き領域がありません。

     

    2012年6月13日 2:26
  • フォーラム オペレーターの星 睦美です。
     
    試験問題作成員会 さん、中年やっちゅうねん さん
    いつも回答ありがとうございます。
     
    こんにちは、tom20120608 さん

    中年やっちゅうねん さんの返信に、今回は勝手ながら私から [回答としてマーク]しました。
    もし引き続き質問があれば、遠慮なく[回答としてのマークの解除」をして返信できます。
     
    では今後とも、TechNet フォーラムをよろしくお願いします。


    日本マイクロソフト株式会社 フォーラム オペレーター 星 睦美

    2012年6月28日 8:55