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级分析,未来版本可能会改善。
➡️