为什么 Windows 事件日志在达到最大日志大小之前停止记录事件?

为什么 Windows 事件日志在达到最大日志大小之前停止记录事件?

我有一项服务,会产生大量事件日志输出。目前,事件日志配置为覆盖所有旧事件,以防止日志变满。我们还大幅增加了事件日志的大小(大约 600 MB)。

最近,该服务开始向其客户端报告错误,它发送给其客户端的错误消息是“事件日志文件已满”。当事件日志配置为根据需要覆盖时,怎么会这样呢?

为了尽快恢复服务,我们清除了事件日志,但没有保存其内容,但从一些早期日志转储的大小来看,它很可能还没有达到 600 MB。还有 MS KB 条目312571,报告称有针对类似问题的修补程序可用,但修补程序适用的配置与我们拥有的配置并不完全相同。具体而言,修补程序仅适用于将事件日志配置为绝不覆盖旧事件。

我想知道这是否与日志文件有关显然是内存映射的。如果系统用尽了文件映射的地址空间,会发生什么情况?

答案1

http://technet.microsoft.com/en-us/library/cc778402%28WS.10%29.aspx

所有当前版本的 Windows 在内存映射文件方面都有架构限制:任何进程的内存映射文件总数都不能超过 1 GB。此限制意味着在 Services.exe 进程下运行的所有服务都必须共享 1 GB 池

我认为这就是原因。如果您需要大量日志记录,请使用某种方法在旧日志被覆盖之前将其存档?

相关内容