在IIS日志文件夹上使用NTFS压缩是否是一种好习惯?


13

在IIS日志文件夹和文件上使用NTFS压缩是一种好习惯吗?

通过这样做,我能够从20GB降至7GB。IIS日志是每天的,平均大小为20MB,但在某些极端的日子则为200MB。

我想知道IIS是否必须打开内存中的整个文件,迫使NTFS每次解压缩20MB(在极端情况下为200MB)?还是有一些魔术可以让IIS附加内容?对系统有什么影响?如果我们增加流量会成为问题吗?

我应该每小时而不是每天拆分它们吗?

微软对此有任何官方文件吗?我找不到一个。


2
如果需要长期维护日志,为什么不移动它们?将当天的日志保存在服务器上,并将其余的日志移动/归档到其他地方。无论如何,您将日志用作什么?
joeqwerty

1
移动正在添加另一个可能失败的进程。我正在尝试亲吻。
Malartre

Answers:


10

正如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


正是我要找的答案,@ peter-hahndorf!
Malartre

有趣的是,微软的这篇文章另外建议: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 '16

1
@ Zero3事务日志记录与IIS日志有点不同。在这种情况下,实际上直到通过将事务更改写入磁盘而使事务更改变得持久之后,程序内部的函数实际上才被允许成功返回,因此应用程序性能与事务日志的磁盘写入速度直接相关。
NReilingh

@NReilingh你可能是对的。我实际上不知道IIS是否将同步/异步写入其日志文件。无论哪种方式,我认为本文提出的总体观点(其中还有其他示例,例如具有大量读写功能的用户文件夹)是,大量的IO可能是压缩文件夹的问题。
Zero3 '18 -4-24

13

我压缩了很多IIS服务器上的IIS日志,尽管主要是托管Outlook Web Access / App或低容量网站的服务器。我这样做没有问题,非常喜欢节省磁盘空间。

通常,您需要通过做出此决定来将CPU换为存储。如果您一开始就受CPU限制,那么这可能不是一个很好的权衡。对于我的OWA服务器来说,每天可以增长10G的日志(感谢ActiveSync设备),我认为这是一个不错的选择。

NTFS文件系统驱动程序处理压缩,因此它不会更改IIS写入文件的方式。

编辑:

您还可能在权衡一些I / O带宽和IOPS。如果您的卷足够大,日志写入会大量消耗I / O资源,那么启用压缩也会导致I / O消耗减少。

告诉您这将如何影响您的唯一方法是自己进行基准测试。以禁用压缩的基准为准,然后启用并进行比较。无需挥动魔杖就能知道它将如何影响您-发挥着太多不确定性因素。


1
击败我几秒钟...您是否有工作要做,而不是玩ServerFault?:p无论如何,+ 1。我做相同的事情已经很久了,但结果却没有问题。
HopelessN00b

这个答案很有趣,但是我正在寻找更多的事实。我正在查看详细信息,例如IIS刷新是否每隔X分钟记录一次日志,以及是否需要读取整个文件仅添加一行。
Malartre

@Malartre确实不是轶事。如前所述,NTFS文件/文件夹压缩是一个折衷方案-CPU周期所需的磁盘空间(以及很少的内存使用增加)。这几乎是尽可能具体和实际的,而无需在特定环境上进行基准测试和运行实际测试。
HopelessN00b
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.