c# - EventLogReader 远程性能

标签 c# .net performance event-log

我正在使用 EventLogReader 查询远程 2008 服务器的事件。在远程机器上查询事件的性能非常糟糕(6/秒)。如果我使用仅向前的 ManagementObjectSearch 通过 WMI 查询同一台机器,则性能非常好(1000/秒)。我在 EventLogReader 上没有看到任何类似的选项(例如 ReturnImmediatly、Rewindable)来加速它。我尝试关闭远程服务器上的防火墙以查看是否可能存在通信问题,但这并没有什么不同。

当使用 EventLogReader 从本地主机读取日志时,性能符合预期——它只是在网络上变慢了(但 WMI 没有遇到这个问题)。

有什么方法可以加快网络上 EventLogReader 的性能?

谢谢, 米奇

最佳答案

做了一些测试(修改了 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(),它会大大提高性能。

关于c# - EventLogReader 远程性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2239410/

相关文章:

c# - 尽管我刚刚保存了文档,但Visio提示我保存文档时要保存它

reactjs - 从 React Azure 静态 Web 应用程序向 .NET Azure Function 发出请求时,为什么会收到 'blocked by CORS policy' 错误?

c++ - 在 C++ 中实现长方程时,如何通过高级方法提高性能

Xcode 运行缓慢并占用 CPU

c# - 用户控件的数据源

c# - .NET 嵌套类

c# - Domain Admins 组的 IsUserInRole 问题(不是配置问题)

.net - 禁用 sp_reset_connection

.net - 使用 .NET Core 进行 DAL 和连接字符串的依赖注入(inject)

performance - 短环路时延