AOT漫谈专题(第二篇): 如何对C# AOT轻量级APM监控

💡 原文中文,约5500字,阅读约需14分钟。
📝

内容提要

文章介绍了如何对.NET Native AOT程序进行轻量级APM监控。首先,通过配置EventSourceSupport保留eventpipe组件,以便使用dotnet-counter监控内存和CPU指标。其次,利用windbg手动分析托管堆数据和GC信息。目前.NET AOT不支持sos级分析,但未来版本可能会改善。

🎯

关键要点

  • 文章介绍了如何对.NET Native AOT程序进行轻量级APM监控。
  • 通过配置EventSourceSupport保留eventpipe组件,以便使用dotnet-counter监控内存和CPU指标。
  • AOT在ilc编译过程中采用摇树优化,eventpipe跟踪组件默认不加入。
  • 在csproj中配置EventSourceSupport为true以保留eventpipe。
  • 使用dotnet cli进行public发布后,可以用dotnet-counter监控程序的托管堆和CPU等指标。
  • 虽然没有开启EventPipe,仍然可以通过coreclr底层了解程序信息。
  • sos在AOT中无法使用,但可以手动挖掘托管堆数据。
  • 可以通过windbg分析当前机器的内存总量和CPU核心数。
  • 捕获GC触发信息有助于了解GC的触发代和原因。
  • 目前.NET AOT不支持sos级分析,未来版本可能会改善。
➡️

继续阅读