原文出处:dotnet core 高CPU定位 dotnet-dump篇 - linFen - 博客园

在windows操作系统,我们可以用Windbg定位,那在linux微软也提供dotnet-dump定位

准备

# 注册 Microsoft 密钥和源
sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm

# 安装 .NET Core SDK
yum install dotnet-sdk-3.1

# 验证是否安装成功
dotnet --version

dotnet tool install -g dotnet-dump

以下定位代码

1) centos 7 编译代码并运行 进程号 8936

2) top -Hp 8936   显示8936进程中 线程8936 CPU 99.3%

4) dotnet-dump collect -p 8936 -o mytest.dump

5) 分析dump 文件这里windowdbg 类似 dotnet-dump analyze mytest.dump

6) dumpdomain --显示所有 AppDomain 和域中的所有程序集的信息  其中dotnet core 和.net framwork 的  AppDomain 有些差别, .net framwork 有3个程序域,dotnetcore 只有2个,少一个共享程序域.

7)言归正传,看一下成活线程 clrthreads -live

8) threads

9)setthread 0   #切换8936显程编号 0  并查看

clrstack -a  #当前线程托管代码的堆栈跟踪

找出当前线程计算stack情况调用Test2

10) r 也可以进一步看 寄存器执行在做什么(汇编指令),根据linux 内核dumpstack关系深入分析

dotnet core CPU高问题定位 dotnet-dump相关推荐

  1. dotnet core调试docker下生成的dump文件

    最近公司预生产环境.net core应用的docker容器经常出现内存暴涨现象,有时会突然吃掉几个G,触发监控预警,造成容器重启. 分析了各种可能原因,修复了可能发生的内存泄露,经测试本地正常,但是发 ...

  2. Java服务CPU高如何定位解决

    原生系统命令排查的方法 分别分享下Linux和Windows系统下的排查方法 首先是Linux系统下 如果不借助工具,使用Linux和jdk自带命令的话,步骤是这样的: top命令查出占用最高的进程: ...

  3. centos 6.5 安装dotnet core 2.2

    .net core 官网地址 https://dotnet.microsoft.com/download 本次安装版本为.net core SDK v2.2.101 1.查看系统版本, 升级系统基本l ...

  4. Dotnet core基于ML.net的销售数据预测实践

    ML.net已经进到了1.5版本.作为Microsoft官方的机器学习模型,你不打算用用?   一.前言 ML.net可以让我们很容易地在各种应用场景中将机器学习加入到应用程序中.这是这个框架很重要的 ...

  5. 一文说通Dotnet Core的后台任务

    这是一文说通系列的第二篇,里面有些内容会用到第一篇中间件的部分概念.如果需要,可以参看第一篇:一文说通Dotnet Core的中间件   一.前言 后台任务在一些特殊的应用场合,有相当的需求. 比方, ...

  6. [SSCore] 开源dotnet core 版本 SuperSocket

    前言碎语 最近一直在做旧版本dotnet 程序迁移至dotnet core的工作, 非常欣慰dotnet社区的蓬勃发展, 目前大部分的第三方类库或开源代码都有了dotnet core版本 或者可以方便 ...

  7. arm linux源更新,[Linux] - Manjaro ARM 系统配置(更新镜像源,安装 Docker 和 Dotnet Core)...

    硬件:Raspberry Pi 4B 系统:Manjaro-ARM-xfce-rpi4-19.08 网址:https://manjaro.org/ Issue 系统启动后,中文字符显示为小方格乱码 解 ...

  8. DOCKER上运行DOTNET CORE

    DOCKER上运行DOTNET CORE 原文:DOCKER上运行DOTNET CORE 下载microsoft/dotnet镜像 运行命令: docker pull microsoft/dotnet ...

  9. 将Teams Template升级到dotnet core 3.1

    为了方便开发者开发Teams应用,我在2018年做了dotnet c#的一套模板,这套模块一共有三种类型,一个是Teams OutgoingWebhook,一个是MessagingExtension, ...

最新文章

  1. ZJU-java进阶笔记 第一、二周(类与对象,对象交互)
  2. SQL Server 删除重复记录,只保留一条记录
  3. 用英语优雅地表达愤怒
  4. Android4.0 Design之UI设计易犯的错误1
  5. Django 权限管理-后台根据用户权限动态生成菜单
  6. Python简单遍历字典及删除元素的方法
  7. wordpress后台404页面
  8. OS- -文件系统(二)
  9. css和 js 改变html里面的定位。
  10. 计算ndvi值需要的数据_ENVI中计算植被覆盖指数
  11. Zeppelie连接jdbc的使用
  12. 研究了一下WORD的斜体,角度约20度
  13. 键盘按键损坏 注册表更改_如何彻底清洁键盘(不损坏任何东西)
  14. python将文字转换成图片_使用Python脚本将文字转换为图片的实例分享
  15. EXCEL中小数点后面的0怎么去掉
  16. 计算机软件操作试题多选,2016职称计算机考试WPS_Office多选试题及答案
  17. fusion 360调整字体大小
  18. Oracle10g的安装
  19. 爬虫学习笔记-scrapy框架介绍
  20. linux udt 源码,UDT linux下关闭链接耗时过长

热门文章

  1. MySQL学习(14)︱复合索引与覆盖索引
  2. 用python海龟绘图——玫瑰花
  3. Kotlin 协程--线程池的7个灵魂拷问
  4. Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
  5. 华为笔记本matebook14 2020锐龙安装Ubuntu20.04+美化
  6. Win10任务栏的蓝牙图标误删,如何恢复?
  7. java equals方法详解
  8. 汇佳学校家长专栏|家校携手,共创“教育的第三种选择”
  9. 关于Https的加密过程理解
  10. 2022-2027年中国隔音毡行业市场深度分析及投资战略规划报告