在IIS日志文件夹和文件上使用NTFS压缩是一种好习惯吗?
通过这样做,我能够从20GB降至7GB。IIS日志是每天的,平均大小为20MB,但在某些极端的日子则为200MB。
我想知道IIS是否必须打开内存中的整个文件,迫使NTFS每次解压缩20MB(在极端情况下为200MB)?还是有一些魔术可以让IIS附加内容?对系统有什么影响?如果我们增加流量会成为问题吗?
我应该每小时而不是每天拆分它们吗?
微软对此有任何官方文件吗?我找不到一个。
在IIS日志文件夹和文件上使用NTFS压缩是一种好习惯吗?
通过这样做,我能够从20GB降至7GB。IIS日志是每天的,平均大小为20MB,但在某些极端的日子则为200MB。
我想知道IIS是否必须打开内存中的整个文件,迫使NTFS每次解压缩20MB(在极端情况下为200MB)?还是有一些魔术可以让IIS附加内容?对系统有什么影响?如果我们增加流量会成为问题吗?
我应该每小时而不是每天拆分它们吗?
微软对此有任何官方文件吗?我找不到一个。
Answers:
正如Evan给出的一般性回答一样,我想解决您的两个子问题:
IIS是否每隔X分钟刷新一次日志?
IIS的内核模式部分http.sys负责日志记录,它在将数据写入日志文件之前先将其缓冲在内存中。我不确定,但我不认为它每隔x秒进行一次刷新,更有可能是在缓冲区已满后。
添加一行时是否需要读取整个文件?
不,NTFS将文件更新写入其自己的缓存中,然后将数据异步压缩并附加到文件中。写入压缩文件不会比未压缩文件慢很多。
因此,在IIS日志文件上使用NTFS压缩应该没有问题。
资料来源:
IIS 7资源工具包,第15章:日志记录-Microsoft Press 2008
Windows Internals 6th Edition Part2,第12章:文件系统Microsoft Press 2012
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.
问题是,不断的定义是什么?
我压缩了很多IIS服务器上的IIS日志,尽管主要是托管Outlook Web Access / App或低容量网站的服务器。我这样做没有问题,非常喜欢节省磁盘空间。
通常,您需要通过做出此决定来将CPU换为存储。如果您一开始就受CPU限制,那么这可能不是一个很好的权衡。对于我的OWA服务器来说,每天可以增长10G的日志(感谢ActiveSync设备),我认为这是一个不错的选择。
NTFS文件系统驱动程序处理压缩,因此它不会更改IIS写入文件的方式。
编辑:
您还可能在权衡一些I / O带宽和IOPS。如果您的卷足够大,日志写入会大量消耗I / O资源,那么启用压缩也会导致I / O消耗减少。
告诉您这将如何影响您的唯一方法是自己进行基准测试。以禁用压缩的基准为准,然后启用并进行比较。无需挥动魔杖就能知道它将如何影响您-发挥着太多不确定性因素。