SuperAPI AI 工具集

dotnet-trace-collect

通用与其它

查看项目

更新于 10-16 09:31

技能介绍

用途:帮助开发者诊断生产环境 .NET 性能问题(高 CPU、内存泄漏、请求缓慢、挂起、GC 过多、网络错误等)。它负责推荐诊断工具、指导数据采集并建议分析方向,不审查代码反模式,也不替用户做分析。

输入:需提供症状、运行时(.NET Framework 或现代 .NET 及版本,尤其是否 .NET 10+)、操作系统(Windows/Linux)、部署形态(非容器/容器/Kubernetes),建议提供管理员权限与复现特征。若在问题发生的工作负载上下文中,可直接代为执行命令;否则只给出命令供用户自行运行。

工具选择:Windows + 现代 .NET + 管理员用 PerfView(无管理员用 dotnet-trace);Windows + .NET Framework 用 PerfView;Linux + .NET 10+ + root 用 dotnet-trace collect-linux(不满足条件则回退 dotnet-trace);Linux 旧版用 dotnet-trace,需要原生栈时加 perfcollect;容器/K8s 有控制台用控制台工具,无控制台用 dotnet-monitor。

场景要点:内存泄漏建议在增长期抓两次转储并做堆差异(转储采集需调用 dump-collect 技能,现代 .NET 不直接给命令);GC 过多需跟踪(PerfView /GCCollectOnly 或 dotnet-trace --profile gc-verbose);请求缓慢用线程时间跟踪,ASP.NET Core 额外启用 Hosting 与 Kestrel provider;网络问题需线程时间跟踪加 System.Net.* providers(.NET Framework 的 /ThreadTime 已含网络事件);挂起先用跟踪,若无法解释再抓转储用调试器查看线程栈与锁环。

限制:不支持 .NET Framework 的转储采集技能,需直接提供 procdump -ma <PID> 或任务管理器等方式;无管理员权限时 .NET Framework 无法排查高 CPU、慢请求与过度 GC。具体命令细节需加载对应参考文件,资料未提供分析实现。