我正在使用EventLogReader来查询远程2008服务器的事件。在远程机器上查询事件的性能非常糟糕(每秒6次)。如果我使用仅向前的ManagementObjectSearch通过WMI查询同一台机器,性能很好(1000 /秒)。我没有在EventLogReader上看到任何类似的选项(例如ReturnImmediatly,Rewindable)来加速它。我尝试关闭远程服务器上的防火墙,看看是否存在通信问题,但这没有什么区别。
当使用EventLogReader从本地主机读取日志时,性能如预期一样 - 它只会通过网络减速(但WMI不会遇到问题)。
有什么方法可以通过网络加速EventLogReader的性能?
谢谢, 米奇
答案 0 :(得分:4)
进行了一些测试(修改了http://msdn.microsoft.com/en-us/library/bb671200.aspx中的示例代码)并从我的实验中发现性能命中来自调用EventRecord.FormatDescription()。
当我只调用EventRecord.ToXml()时,我能够在25秒内以大约170个事件/秒从LAN上的服务器远程拉出超过4300个事件。当我添加对EventRecord.FormatDescription()的调用时,性能下降到将近1.5分钟,以读取所有4300多个事件和大约52个事件/秒。
我道歉这可能不是你想要的答案,但我的建议是如果你不需要调用EventRecord.FormatDescription()它会提高性能。