资讯专栏INFORMATION COLUMN

.NET GC 实时监控 dotnet-gcmon 介绍

changfeng1050 / 1328人阅读

摘要:今天介绍一个新的诊断工具也是全局工具它可以监控到程序的能获取到的信息也很详细另外大佬也是其中的开发者之一。

今天介绍一个新的诊断工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以监控到 .NET 程序的 GC, 能获取到的信息也很详细, 另外 maoni 大佬也是其中的开发者之一。

安装 gcmon

和其他的 dotnet 诊断工具一样, 你可以使用以下命令,进行全局安装

dotnet tool install -g dotnet-gcmon 

参数介绍

参数 描述
n 进程名, dotnet 应用的进程名
p 进程ID, dotnet 应用的 Process ID
m 最小 GC 暂停持续时间(以毫秒为单位),可选
c 指定一个 yaml 配置文件路径, 可选

使用

使用非常简单, 我们需要指定被监控的 dotnet 应用的进程名或者是进程ID (PID), 这里也可以使用另外一个诊断工具 dotnet-trace, 安装命令如下

dotnet tool install -g dotnet-trace

然后运行 dotnet trace ps 获取所有的 dotnet 进程

接下来, 运行 dotnet gcmon -p 21904, 开始监控 dotnet 应用, 诊断工具会输出下面的信息

在诊断工具运行的时候, 按下 s 键, 会输出当前 GC 的整体和每一代的状态

另外还可以使用 yaml 配置文件, 灵活配置诊断工具输出列,具体可以参考 github。

总结

dotnet gcmon 是一个小而实用的诊断工具, 并且还在迭代中, 在对于代码无侵入的情况下, 排查问题还是很方便的, 另外 .NET 现在已经有近十个诊断工具了!

gcmon 的工作原理是什么呢? 其实主要是调用了 CLR 运行时团队提供的一个诊断库, Microsoft.Diagnostics.NETCore.Client, 这个库功能就非常强大了, 各种运行时信息都可以拿到, 当然你也可以用它实现一个诊断工具, 这个库是基于 EventPipe, IPC 等实现的, 还是很复杂的, 最后希望本文对您有用!

https://github.com/Maoni0/realmon

 

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/124135.html

相关文章

  • Docker环境下的中间件监控,没错就两步

    摘要:在很多企业环境中,都采用作为服务。对的监控,较为常用的方式是使用。那么,到全的环境下,如何搭建并实现以上的监控系统,今天就由数人云工程师来分享一下。以及其他依赖文件可以在码云中获得。 本文来自KVM群直播的实录分享。在很多企业环境中,都采用 tomcat 作为web 服务。对 tomcat 的监控,较为常用的方式是使用 JMX。那么,到全 Docker 的环境下,如何搭建并实现以上的监...

    WalkerXu 评论0 收藏0
  • Docker环境下的中间件监控,没错就两步

    摘要:在很多企业环境中,都采用作为服务。对的监控,较为常用的方式是使用。那么,到全的环境下,如何搭建并实现以上的监控系统,今天就由数人云工程师来分享一下。以及其他依赖文件可以在码云中获得。 本文来自KVM群直播的实录分享。在很多企业环境中,都采用 tomcat 作为web 服务。对 tomcat 的监控,较为常用的方式是使用 JMX。那么,到全 Docker 的环境下,如何搭建并实现以上的监...

    Object 评论0 收藏0
  • Jstatd方式远程监控Linux下 JVM运行情况

    摘要:能够提供被监控虚拟机的内存线程类的加载以及等信息,从而能够对服务器的运行情况进行实时监控。目前支持两种监控方法方法和基于的方法。下一篇博客讲解以方式实现远程监控。 转自:http://www.cnblogs.com/catkin...介绍两个jdk1.8自带的可视化监视工具 Jconsole: Java 6.x采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JCo...

    hedge_hog 评论0 收藏0
  • Jstatd方式远程监控Linux下 JVM运行情况

    摘要:能够提供被监控虚拟机的内存线程类的加载以及等信息,从而能够对服务器的运行情况进行实时监控。目前支持两种监控方法方法和基于的方法。下一篇博客讲解以方式实现远程监控。 转自:http://www.cnblogs.com/catkin...介绍两个jdk1.8自带的可视化监视工具 Jconsole: Java 6.x采用JMX方式提供了一系列监视和管理虚拟机的API,随SDK一起发布的JCo...

    galois 评论0 收藏0
  • 学习使用 .Net 的 IDisposable interface

    摘要:原因有两个不能依赖析构函数,因为异构函数的调用由决定。有一通用的处理原则析构函数处理托管资源,处理托管与非托管资源。尝试过在析构函数中把一个庞大的设置为,唯一的结果是导致它的回收被延迟到下一次周期。 .Net Framework 中的 Garbage Collection 会帮助程序员自动回收托管资源,这对类库的调用者而言,是个相当惬意的体验:可以在任何位置,任何时候,创建任何对象,G...

    Jackwoo 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<