写点什么

NetCore 性能排查

作者:神秘码农
  • 2022 年 3 月 29 日
  • 本文字数:805 字

    阅读完需:约 3 分钟

@[toc]

一、性能排查

  • 性能的概念

  • 性能的来源于系统。

  • 系统分为两类:web 系统【BS】和客户端【桌面】系统【CS】。

  • 性能的指标根据

  • 两个根据:

  • 数量 客户端执行接口的数量,也就是 1 秒钟能执行多少个请求接口,处理的越多,性能越高。

  • 时间 从客户端请求到服务端并响应请求产生的时间称之为 性能时间;时间越短性能越高。

  • 如图:


  • 时间和数量是一个矛盾关系:时间越短执行的数量越多【吞吐量】,时间越长执行的数量越少。

  • 性能的起点在于执行一次接口的执行时间。

  • 获取系统接口执行时间

  • 工具:

  • Apche JMeter 【常用】

  • ApcheBench(ab)命令行工具【常用】

  • Gatling

  • K6

  • Locust

  • West Wind WebSurge

  • Netling

  • Vegeta

  • NBomber

  • 性能诊断

  • 工具

  • VS 自带的性能探测器

  • CPU 使用率上升的原因

  • while for 循环

  • 解决方案:使用 Hash 表寻存储数据

  • 文件操作

  • 解决方案:异步 IO DoNetty

  • 网络连接和网络数据传输

  • 解决方案:使用缓存的方式存储数据 或者 使用异步 IO 多路复用机制

  • CPU 使用率上升的缺陷:

  • 处理接口并发量的能力下降

  • 系统的吞吐量下降

  • 性能排查落地

  • 条件

  • NET CORE 3.1 SDK 或 更高级版本

  • dotnet-counters 检查托管内存的使用情况

  • dotnet-dump 收集和分析转储文件

  • 步骤

  • 创建内存溢出项目

  • 安装 dotnet-counters 准备


       dotnet tool install --global dotnet-counters
复制代码


3. 找到进程编号
复制代码


       dotnet-counters ps
复制代码


4. 监视进程
复制代码


       dotnet-counters monitor --refresh-interval 1 -p [进程编号]
复制代码


5. 最后查看显示统计信息
找到GC Heap Size 统计这个程序的增长,为了找出内存溢出的代码。
6. dotnet-dump 安装
复制代码


       dotnet tool install --global dotnet-dump 
复制代码


7. 然后执行项目接口
运行项目
8. 生成转储文件
复制代码


       dotnet-dump collect -p [进程编号]
复制代码


9. 然后分析转储文件
复制代码


       dotnet-dump  analyze [转储文件名称]
复制代码


10. 开始分析
复制代码


    dumpheap -stat
复制代码


11. 分析类型的具体对象
复制代码


        dumpheap -mt [类型编号]
复制代码


12. 找出应用根
复制代码


        gcroot -all [对象编号]
复制代码


发布于: 刚刚阅读数: 2
用户头像

神秘码农

关注

还未添加个人签名 2022.03.14 加入

好好学习,天天向上!

评论

发布
暂无评论
NetCore性能排查_神秘码农_InfoQ写作平台