首页 > 编程语言 >C# 性能诊断工具 dotnet-counters 的使用

C# 性能诊断工具 dotnet-counters 的使用

时间:2023-09-14 14:48:03浏览次数:49  
标签:Count C# -- GC dotnet sec counters

创建.NET程序Dump的几种姿势

下载 dotnet-counters 工具

简介

dotnet-counters 是一个性能监视工具,用于初级运行状况监视和性能调查。它通过 EventCounter API 观察已发布的性能计数器值。例如,可以快速监视CUP使用情况或.NET Core 应用程序中的异常率等指标

安装

通过nuget包安装:

dotnet tool install --global dotnet-counters

主要命令

1、dotnet-counters ps 查看服务器上运行中的Dotnet进程列表

2、dotnet-counters list 显示可用的计数器名称和说明(场景1和2都可以用这个查看说明)。

3、dotnet-counters collect 定期收集所选计数器的值,并将它们导出为指定的文件格式以进行后续处理。

4、dotnet-counters monitor 监控并显示所选计数器(dotnet-counters list可查看有哪些计数器可用)的定期刷新值。

使用方法:

1、dotnet-counters ps 查看进程ID

2、dotnet-counters monitor --process-id 14613 --refresh-interval 1

场景一:dotnet-counters monitor -p 14660 --refresh-interval 1 监视id为14660的进程,每隔1秒钟刷新一次。

[System.Runtime]
    % Time in GC since last GC (%)                                 0    #GC垃圾回收百分比
    Allocation Rate (B / 1 sec)                               73,440    #内存分配量
    CPU Usage (%)                                                  0    #CPU使用率
    Exception Count (Count / 1 sec)                                0    #异常数量
    GC Fragmentation (%)                                           5.437#GC 堆碎片率
    GC Heap Size (MB)                                             22    #GC堆内存分配量(消耗内存)
    Gen 0 GC Count (Count / 1 sec)                                 0    #0代垃圾回收次数
    Gen 0 Size (B)                                         1,042,696    #0代垃圾回收大小
    Gen 1 GC Count (Count / 1 sec)                                 0    #1代垃圾回收次数
    Gen 1 Size (B)                                           180,520    #1代垃圾回收大小
    Gen 2 GC Count (Count / 1 sec)                                 0    #2代垃圾回收次数
    Gen 2 Size (B)                                         2,014,768    #2代垃圾回收大小
    IL Bytes Jitted (B)                                      448,237    #JIT编译的IL总节数
    LOH Size (B)                                          16,875,680    #大对象占用内存(大于85000字节的对象)
    Monitor Lock Contention Count (Count / 1 sec)                  0    #锁竞争次数
    Number of Active Timers                                        3    #活动计数器
    Number of Assemblies Loaded                                  108    #程序集加载数量
    Number of Methods Jitted                                   6,086    #JIT编译的方法总数
    POH (Pinned Object Heap) Size (B)                        113,608    #固定对象堆的字节数
    ThreadPool Completed Work Item Count (Count / 1 sec)           2    #线程池完成任务数量
    ThreadPool Queue Length                                        0    #线程池工作项队列长度
    ThreadPool Thread Count                                        5    #线程池线程数量
    Working Set (MB)                                              64    #总分配内存

场景二:dotnet-counters monitor -p 32693 --refresh-interval 1 --counters Microsoft.AspNetCore.Hosting 监视id为32693的Web进程,每隔1秒钟刷新一次。

[Microsoft.AspNetCore.Hosting]
    Current Requests                                   0    #当前请求数量
    Failed Requests                                    0    #失败数量
    Request Rate (Count / 1 sec)                       1    #每秒请求数量
    Total Requests                                     3    #总请求数量

参考:https://blog.csdn.net/qq_26900081/article/details/123734674

安装注意事项:

1、安装的版本要和Dotnet SDK版本一致

2、检查Dotnet SDK版本:

dotnet --list-sdks

下载地址目录:

dotnet tool install 命令 - .NET CLI | Microsoft Learn

如下载指定版本号:

dotnet tool install --global dotnet-dump --version 3.1.412

dotnet tool install --global dotnet-counters --version 3.1.412

dotnet tool install --global dotnet-trace --version 3.1.412

参考:https://zhuanlan.zhihu.com/p/463827397

微软官方提供:https://learn.microsoft.com/zh-cn/dotnet/core/diagnostics/dotnet-trace

标签:Count,C#,--,GC,dotnet,sec,counters
From: https://www.cnblogs.com/kkbk/p/17702409.html

相关文章

  • git revert如何撤销某次merge或commits?
    gitrevert撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销作为一次最新的提交撤销commits bash复制代码gitrevert-n'commitid'撤销某次merge保留本分支内容,撤销'commitid'对应的内容 bash复制代码gitrevert-m1'commitid'......
  • CERC2014 Mountainous landscape
    1ay1D。这是一个跑不过双\(\log\)的单\(\log\)做法。考虑双\(\log\)做法是怎么做的。令\(a_i(1\lei\len)\)为给定的\(x\)坐标递增的点序列,开一棵线段树维护区间上凸壳,第\(i\)次查询相当于在\([i+2,n]\)区间组成的点的上凸壳中,找到一个在经过\(a_i,a_{i+1}\)......
  • C#中的异步编程和并发控制
    简介:欢迎来到C#语言入门指南的第十篇博客!在前几篇博客中,我们已经学习了C#的基本语法、面向对象编程、集合和异常处理等内容。今天,我们将进一步探讨两个重要的主题:异步编程和并发控制。这些主题对于处理多任务和提高程序性能至关重要。让我们深入了解吧!1.异步编程:异步编程是一种......
  • Unicode与中文转换工具类
    在上一家公司做Android注入时,如果注入中文会有问题,需要将中文转换为unicode码注入,在网上查了一下转换工具类,大多数都是如下的解决方案: publicclassCharacterSetToolkit{/**CreatesanewinstanceofCharacterSetToolkit*/publicCharacterSetToolkit(){......
  • Myspace数据库架构经验学习
    50万账户两台Web服务器和一个数据库服务器。第二代架构:运行在3个SQLServer数据库服务器,一主二从,读写分离。1-2百万账户垂直分割:不同的数据库服务于站点的不同功能,如登录、用户资料和博客。账户到达2百万后,数据库服务器开始受制于I/O容量,用高带宽、专门设计的网络将大量磁盘存储设......
  • memcahed在linux环境的安装
    在上一家公司时,产品主要使用memcached做缓存。虽然目前这家公司memcached使用的比较少(刚进公司做云存储相关服务时小规模使用了一下,后来做另一个系统时换redis做了缓存),但前几天整理资料时看到了原先写的memcached相关笔记,在此整理一下发上来。 一、安装准备:(1)下载memcached-1.4......
  • Memcached深入学习总结
    在上一家公司时,产品主要使用memcached做缓存。虽然目前这家公司memcached使用的比较少(刚进公司做云存储相关服务时小规模使用了一下,后来做另一个系统时换redis做了缓存),但前几天整理资料时看到了原先写的memcached相关笔记,在此整理一下发上来。----------------------------------......
  • SpringBoot中@ConfigurationProperties和@PropertySource的区别
    @ConfigurationProperties用于将主配置文件(application.properties或者“application.yml”)中的属性,映射到实体类中对应的属性。意思就是把主配置文件中配置属性设置到对应的Bean属性上。只需要写明prefix,如下,prefix是sever,就会自动将application文件中以sever开头的配置一一注......
  • USB-CDC虚拟串口实现printf功能
    本篇文章介绍如何使用CH32来实现USB虚拟串口打印功能,代替传统中的串口打印。相比传统串口优势点: 1,速度快,一包大概也就几十us,而传统的大概要用到几ms。 2,节省了一个USB转串口芯片的成本。 3,在没有USB转串口工具的情况下,可以很方便调试。下面就介绍怎么配置USB-FS口一,在US......
  • JMS规范与ActiveMQ简记
    前一段时间公司的产品中使用了ActiveMQ作为消息通知的工具,也简要记录了一些概念,整理后与大家分享一下(部分内容摘自网络,详见参考资料一栏)。 一、ActiveMQ是一个JMS规范的一个实现。在JMS中间主要定义了2种消息模式Point-to-Point(点对点)和Publich/SubscribeModel(发......