安装dotnet下的诊断工具
1.安装dotnet下的三个诊断工具
dotnet-counters一个性能监视工具,用于临时运行状况监视和初级性能调查, 你可以通过命令查看和存储,当前程序的运行时信息,它可以收集 CPU,内存,GC,线程,异常 等信息
dotnet-trace一个跨平台的 .NET Core 工具,在不使用本机探查器的情况下启用正在运行的进程的 .NET Core 跟踪集合,它是围绕 .NET Core 运行时的跨平台 EventPipe 技术而构建的,在 Windows、Linux 或 macOS 上提供相同体验。
dotnet-dump是性能收集和分析实用工具,流程是先用 dotnet-dump collect 命令 收集当前程序的运行时信息,然后通过 dotnet-dump analyze 命令启动交互式 shell命令,来分析程序
由于服务器基本都是无法联网的,所以该工具需要离线安装(注意先按照.net core SDK)
配置dotnet tool环境变量:
vi /etc/profile 在最后面追加:export PATH="$PATH:/root/.dotnet/tools"
然后执行 source /etc/profile 使环境变量生效
接下里以安装dotnet-counters为例:
使用 https://www.nuget.org/packages/dotnet-counters/找到合适版本(要找兼容.net core3.1可用的,下面demo中就是3.1可用的最新的工具版本)
复制 dotnet tool install --global dotnet-counters --version 6.0.351802 命令
点击Download package 下载离线包
建立文件夹package,把离线包放进去
在文件夹外,运行命令
dotnet tool install --global dotnet-counters --version 6.0.351802 --add-source “package”
------
以上3个工具安装以后就可以进行内存泄漏的排查了,具体命令参考如下:
常用指令:
dotnet-counters collect:定期收集所选计数器的值,并将它们导出为指定的文件格式以进行后续处理。
dotnet-counters list:显示按提供程序分组的计数器名称和说明的列表。
dotnet-counters monitor:实时监控程序的运行信息
dotnet-counters ps:显示可监视的 dotnet 进程的列表
dotnet-trace collect:实时获取信息,数据收集到trace.nettrace文件,可以用VS打开该文件
dotnet-trace convert:将 nettrace 跟踪转换为备用格式,以便用于备用跟踪分析工具。
dotnet-trace ps:显示可附加到的 dotnet 进程的列表
dotnet-trace list-profiles:列出预生成的跟踪配置文件,并描述每个配置文件中包含的提供程序和筛选器。
dotnet-dump collect:从进程捕获转储。
dotnet-dump analyze:启动交互式 shell 以了解转储。 shell 接受各种 SOS 命令。
使用示例:
1. dotnet-counters monitor -p {pid} 可以看当前进程的运行信息
2. dotnet-dump collect -p {pid}从进程捕获信息转储到文件
3. dotnet-dump {转储文件名}启动交互式shell开始分析文件内容
4. dumpheap -stat -min 10240 查看大于10M的对象信息
dumpheap -stat 不加参数查看内存占用大小和对象数量,默认从小到大
5. dumpheap -mt {mt列编号} -min 10240 查看对应占用较大对象
6. dumpobj {address} 查看对应内容