我有一个产生大量事件日志输出的服务。 目前,事件日志被configuration为覆盖任何旧事件以保持日志不断充满。 我们也大大增加了事件日志大小(大约600 MB)。
最近服务开始向其客户端报告错误,并且发送给客户端的错误消息是“事件日志文件已满”。 如果事件日志被configuration为根据需要进行覆盖,这怎么可能呢?
在我们急于恢复服务的情况下,我们清除了事件日志而没有保存它的内容,但很可能还没有达到600 MB,从早期日志转储的大小来判断。 还有MS KB条目312571 ,它报告有类似问题的热修复程序可用,但该修复程序适用的configuration与我们所具有的不完全相同。 具体而言,修补程序仅适用于事件日志configuration为永不覆盖旧事件。
我想知道这是否与日志文件显然是内存映射的事实有关。 如果系统用尽地址空间来映射文件,会发生什么?
http://technet.microsoft.com/en-us/library/cc778402%28WS.10%29.aspx
所有当前版本的Windows在内存映射文件方面都存在架构限制:任何进程总共可以有超过1 GB的内存映射文件。 此限制意味着在Services.exe进程下运行的所有服务必须共享1 GB的池
我认为这是事业。 如果您需要大量日志logging,请使用某种方法将旧日志覆盖之前进行存档?