You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在生产环境中监控.NET 7应用的基础性能指标?

无Visual Studio环境下获取.NET应用性能指标(管理员操作指南)

针对旧版.NET性能计数器失效的问题,以下是几种无需Visual Studio、无需开发者参与,系统管理员可独立操作的监控方案:

一、使用dotnet-counters(.NET官方命令行工具)

这是微软官方提供的轻量级性能监控工具,支持实时查看和导出.NET应用的核心指标。

  • 安装工具:以管理员身份打开命令提示符/PowerShell,执行:
    dotnet tool install --global dotnet-counters
    
    若已安装,可更新至最新版本:
    dotnet tool update --global dotnet-counters
    
  • 定位目标进程:列出当前运行的所有.NET进程,找到目标应用的PID:
    dotnet-counters ps
    
  • 实时监控核心指标:针对目标PID启动监控,默认包含GC回收、堆内存、线程争用等关键数据:
    dotnet-counters monitor --process-id <目标PID> --counters System.Runtime
    
    如需监控Web应用的额外指标,可追加Microsoft.AspNetCore.Hosting计数器组。
  • 导出数据至文件:将监控数据导出为CSV格式,方便后续分析:
    dotnet-counters collect --process-id <目标PID> --output DotNetPerfData.csv --counters System.Runtime
    

二、使用Windows内置ETW工具(无需额外安装)

利用Windows事件跟踪(ETW)机制,系统自带工具即可捕获.NET运行时的性能事件,适合批量或脚本化操作。

  • 图形化操作(事件查看器):
    • 打开「事件查看器」,右键点击「自定义视图」→「创建自定义视图」
    • 切换到「事件跟踪会话」标签,点击「添加」,输入提供者名称Microsoft-Windows-DotNETRuntime并选择
    • 在「事件ID」中勾选需要的监控项:比如GC开始/结束(ID 100/101)、线程争用(ID 102),完成后保存视图即可实时查看事件
  • 命令行操作(logman):
    • 创建ETW跟踪会话:
      logman create trace DotNetPerfSession -p "Microsoft-Windows-DotNETRuntime" 0x8000000000000010 -o C:\DotNetPerf.etl
      
      (掩码0x8000000000000010对应GC和线程争用事件,可根据需求调整)
    • 启动会话:
      logman start DotNetPerfSession
      
    • 停止会话(完成监控后):
      logman stop DotNetPerfSession
      
    • 解析ETL文件为CSV:
      tracerpt C:\DotNetPerf.etl -o C:\DotNetPerfReport.csv
      

三、使用PerfView(绿色版图形化工具)

微软官方推出的.NET性能分析工具,绿色免安装,适合需要可视化分析的场景。

  • 下载PerfView的绿色压缩包,解压至任意目录(无需安装)
  • 运行PerfView.exe,点击顶部菜单「Collect」→「Collect」
  • 在弹出的配置窗口中,勾选「.NET GC」和「.NET Contention」选项,指定报告输出目录,点击「Start Collection」
  • 监控一段时间后,点击「Stop Collection」,PerfView会自动生成分析报告,可直观查看GC回收次数、堆内存变化、线程争用热点等数据

内容的提问来源于stack exchange,提问作者Boppity Bop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:53:19