我正在使用EventLogReader查询远程2008服务器上的事件。在远程机器上查询事件的性能非常糟糕(每秒6次)。如果我使用只进的ManagementObjectSearch通过WMI查询同一台机器,性能非常好(1000/秒)。我在EventLogReader上看不到任何类似的选项(例如ReturnImmediatly,可回绕)来加速它。我试着关闭远程服务器上的防火墙,看看是否可能有通信问题,但这没有什么不同。
当使用EventLogReader从本地主机读取日志时,性能是预期的--只有在网络上它才会变慢(但WMI没有遇到这个问题)。
有什么方法可以提高EventLogReader在网络上的性能吗?
谢谢,米奇
发布于 2010-02-13 03:41:15
我做了一些测试(修改了http://msdn.microsoft.com/en-us/library/bb671200.aspx中的示例代码),从我的实验中我发现性能影响来自于调用EventRecord.FormatDescription()。
当我只调用EventRecord.ToXml()时,我能够在25秒内以大约170个事件/秒的速度从局域网上的服务器远程拉取超过4300个事件。当我添加对EventRecord.FormatDescription()的调用时,读取所有4300+事件的性能下降到1.5分钟,每秒大约52个事件。
我很抱歉,这可能不是你想要的答案,但我的建议是,如果你不需要调用EventRecord.FormatDescription(),它会大大提高性能。
https://stackoverflow.com/questions/2239410
复制相似问题