IISログフォルダーでNTFS圧縮を使用することをお勧めしますか?


13

IISログフォルダーとファイルでNTFS圧縮を使用するのは良い習慣ですか?

これにより、20GBから7GBに削減することができました。IISログは1日あたりで、平均サイズは20MBですが、極端な日には200MBがあります。

IISがメモリ内のファイル全体を開き、毎回NTFSに20MB(または極端な場合は200MB)の解凍を強制する必要があるかどうか疑問に思っていますか?または、IISがコンテンツを追加できる魔法がありますか?システムへの影響は何ですか?トラフィックを増やすと問題になりますか?

1日ごとではなく1時間ごとに分割する必要がありますか?

これに関するMicrosoftの公式論文はありますか?見つけることができませんでした。


2
ログを長期間維持する必要がある場合は、移動しないでください。当日のログをサーバーに保持し、残りを別の場所に移動/アーカイブします。とにかくログを何に使用していますか?
joeqwerty

1
移動とは、失敗する可能性のある別のプロセスを追加することです。私はキスをしようとしていました。
マラトレ

回答:


10

エヴァンがすでに一般的な答えを出したので、私はあなたの2つのサブ質問に対処したいです:

IISはX分ごとにログをフラッシュしますか?

IISのカーネルモード部分であるhttp.sysは、ログを記録し、ログファイルに書き込む前にデータをメモリにバッファリングします。確かではありませんが、バッファがいっぱいになった後、おそらくx秒ごとにフラッシュを行うとは思いません。

単一行を追加するときにファイル全体を読み取る必要がありますか?

いいえ、NTFSはファイルの更新を独自のキャッシュに書き込み、データを圧縮してファイルに非同期的に追加します。圧縮ファイルへの書き込みは、非圧縮ファイルへの書き込みよりも大幅に遅くはありません。

したがって、IISログファイルでNTFS圧縮を使用しても問題はありません。

ソース:

IIS 7リソースキット、第15章:ロギング-Microsoft Press 2008

Windows Internals 6th Edition Part2、第12章:ファイルシステムMicrosoft Press 2012


まさに私が探していた答え、@ peter-hahndorf!
マラトレ

興味深いことに、この記事マイクロソフトによっては、それ以外の場合はお勧めします。If you run a program that uses transaction logging and that constantly writes to a database or log, configure the program to store its files on a volume that is not compressed. If a program modifies data through mapped sections in a compressed file, the program can produce "dirty" pages faster than the mapped writer can write them.質問の定義が何であるか、である常に
-Zero3

1
@ Zero3トランザクションログは、IISログとは少し異なります。これは、プログラム内の関数が実際に成功して戻ることを許可されない場所であり、トランザクションの変更がディスクに書き込まれることで永続化されるまで、アプリケーションのパフォーマンスはトランザクションログのディスク書き込み速度に直接関係します。
-NReilingh

@NReilinghあなたは正しいかもしれません。実際、IISがログファイルに同期/非同期を書き込むかどうかはわかりません。いずれにせよ、この記事が提起する全体的なポイント(多くの読み取りと書き込みを行うユーザーフォルダーのような他の例があります)は、圧縮フォルダーでは重いIOが問題になる可能性があるということです。
-Zero3

13

主にOutlook Web Access / Appまたは少量のWebサイトをホストしているサーバーではありますが、多くのIISサーバーでIISログを圧縮します。私はそれをすることに何の問題もありません、そして、ディスクスペースの節約がとても好きです。

一般に、この決定を行うことで、CPUをストレージと交換します。そもそもCPUに縛られているなら、これはおそらく良いトレードオフではありません。1日に数ギガバイトのログを増やすことができるOWAサーバーの場合(ActiveSyncデバイスに感謝)、トレードオフは良いものだと思います。

NTFSファイルシステムドライバーは圧縮を処理するため、IISがファイルに書き込む方法は変更されません。

編集:

また、潜在的に、I / O帯域幅とIOPSもトレードオフになります。ログが大量のI / Oリソースを消費するほどボリュームが大きい場合、圧縮を有効にするとI / O消費も減少する可能性があります。

これがあなたにどのような影響を与えるかを伝える唯一の方法は、自分でベンチマークをとることです。圧縮を無効にしてから有効にしたベースラインを取得し、比較します。それがあなたにどのような影響を与えるかを知るために手を振る魔法の杖はありません-あまりにも多くの非決定的要因があります。


1
ServerFaultをプレイする代わりに、やるべき仕事がありませんか?:pとにかく、+ 1。私は何年も同じことをしましたが、その結果としてまだ問題を抱えています。
HopelessN00b

この答えは逸話的で楽しいものですが、もっと多くの事実を探しています。IISがX分ごとにログをフラッシュする場合や、1行追加するだけでファイル全体を読み取る必要がある場合など、詳細を確認しています。
マラトル

@Malartre本当に逸話ではありません。前述のように、NTFSファイル/フォルダーの圧縮はトレードオフです-CPUサイクルのディスク領域(および非常に小さなメモリ使用量の増加)。これは、特定の環境でベンチマークを実行したり実際のテストを実行したりすることなく、可能な限り具体的かつ事実に近いものです。
HopelessN00b
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.