概述

1,性能参数

2,性能排查方式

3,.NET的性能分析工具

1,性能指标

  一个系统的性能排查或者性能设计的前提就是要有明确的性能指标;常见的性能参数

1、响应时间(处理任务时的延迟,简称 RT,指的是业务从客户端发起到客户端接受的时间)。
2、吞吐量(简单讲就是系统在每单位时间内能处理多少个事务/请求/任务数据等)。
3、资源使用率(常见的资源有:CPU、内存、磁盘I/O、网络I/O)。
4、点击数(单位时间内,系统响应客户的请求,是系统处理能力的一个很有用的指标)。
5、并发用户数(并发用户数用来度量服务器并发容量和同步协调能力)。
6、数据库操作时间(属于响应时间的一部分)。

关于吞吐量,我们常常会遇到这样几个参数

TPS:就是我们通常说的吞吐量,也是服务端的每秒处理事务率,通常更关注TPS;可以衡量一个服务端或者系统的处理数据性能
QPS:是数据的每秒查询率,反映系统能抗住的用户的并发请求数压力
RPS:是阿里提出比较重要的性能指数,是每秒处理事务率
HPS:是用户每秒发起的请求率
PV:PV是page view的简写。PV是指页面的访问次数,每打开或刷新一次页面,就算做一个pv

重点说明一下

TPS:

  系统整体TPS取决于处理能力最低模块的TPS值
  TPS总是低于QPS
  系统的性能由 TPS 决定,跟并发用户数没有多大关系
  系统的最大 TPS 是一定的(在一个范围内),但并发用户数不一定,可以调整
  系统的性能由 TPS 决定,跟并发用户数没有多大关系系统的最大 TPS 是一定的(在一个范围内),但并发用户数不一定,可以调整
  从工作实践经验来看,大部分系统(常规复杂度的,别拿低复杂度的系统来杆)的TPS能在一台2核8G内存的阿里云ECS达到2000已经是非常优秀了;(我们公司系统在行业内也算是做的很靠前了,TPS的平均水平也只在1500,老系统,调用链比较长)
  TPS的描述

a.向服务器发请求

b.服务器自己的内部处理(包含应用服务器、数据库服务器等)

c.服务器返回结果给客户端

如果每秒能够完成N次这三个过程,TPS就是N

确定系统的性能指标

以响应和吞吐为核心指标,确定可量化的指标来衡量性能(不能使用主观的判断来确定性能指标);如下示例

在不超过1000个并发活跃请求的情况下,历史订单页面从请求开始不超过300ms
在不超过1000个并发活跃请求的情况下,应用服务器的cpu不得超过50%

不同的指标检测的级别不同:

内存分配,执行时间可以在系统级别,进程级别,独立方法,代码块上
相对于一个整体的cpu占用率,或者一个进程级别的占用时间;
特定方法的执行时间是一个更有效的执行指标

2,性能排查方法

  做性能排查前,先想想怎么样的优化才算性能提高?

  单个请求的响应时间未减少,但是单位时间内的处理的请求数增加了,这也是性能的提高
  能顶住1000W的请求,但是响应时间超过1分钟,这样没有意义
  响应时间很短,但是吞吐量太低,也没有意义(100毫秒响应,每秒只能处理10个用户下单请求......)

一般情况下:

吞吐量越大,往往响应会越差
响应越好,能支持的吞吐量就会越高
如果吞吐量很少,响应会非常稳定

如何进行性能排查,猜测的结果是不可靠的;根据应用程序的复杂度,所需要的信息类型,结果的精确度,是有不同的测试方法

白盒测试:先审查源代码,在书面/白板上分析它的复杂度,然后修改源码,插入测量代码;尤其是想知道精确的结果和了解使用的cpu指令时,
       缺点:太过耗时,对于大型应用不够灵活

黑盒测试:先明确测试指标,再用工具进行测试,不需要事先识别性能的瓶颈
       缺点:没有测试工具能做到能给出精确的测试数据的同时而不给系统的执行效率带来负面影响

3,NET的性能分析工具

....待更新

.NET性能排查的更多相关文章

  1. Sql Server CPU 性能排查及优化的相关 Sql

    Sql Server CPU 性能排查及优化的相关 Sql 语句,非常好的SQL语句,记录于此: --Begin Cpu 分析优化的相关 Sql --使用DMV来分析SQL Server启动以来累计使 ...

  2. Nginx 日志分析及性能排查

    Nginx 日志分析及性能排查 2017-03-04 Linux爱好者 (点击上方公众号,可快速关注) 作者:-外星人- my.oschina.net/362228416/blog/844713 如有 ...

  3. 重新整理 .net core 实践篇 ———— linux上性能排查 [外篇]

    前言 该文的前置篇为: https://www.cnblogs.com/aoximin/p/16839830.html 本文介绍性能排查. 正文 上一节是出现错误了,如何去排查具体问题. 这一节介绍一 ...

  4. Sql Server性能排查和优化懒人攻略

    转载自作者zhang502219048的微信公众号[SQL数据库编程]:Sql Server性能排查和优化懒人攻略 很多年前,笔者那时刚从广东技术师范学院(现为广东技术师范大学,以前为广东民族学院)的 ...

  5. mysql性能排查思路

      mysql性能瓶颈排查 top/free/vmstat/sar/mpstat 查看mysqld进程的cpu消耗占比 确认mysql进程的cpu消耗是%user, 还是sys%高 确认是否是物理内存 ...

  6. 一站式学习Wireshark(四):网络性能排查之TCP重传与重复ACK

    作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端.但用户感到网络运行缓慢并不意味着就是网络问题. 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起.之后阐 ...

  7. Wireshark(四):网络性能排查之TCP重传与重复ACK

    原文出处: EMC中文支持论坛 作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端.但用户感到网络运行缓慢并不意味着就是网络问题. 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重 ...

  8. 性能排查--CPU占用高

    排查思路: 1.先找到占用CPU高的进程PID    top命令 2.top -H -p <PID>  查看哪个占用CPU高的线程TID 3.jstack <PID>  /ho ...

  9. bfrd collector性能排查

     1.2.09上昨天timeout在18点23分-22点10分 2.检测2.17网卡流量,sar -f /var/log/sa/sa06 -n DEV,发现这段时间刚好是rxpck/s超过6400. ...

随机推荐

  1. 2020-04-29:现在你有个秒杀抢购的app,用户不断大量增加,技术层面,你要怎么做

    2020-04-29:现在你有个秒杀抢购的app,用户不断大量增加,技术层面,你要怎么做,才能既满足用户需求,又能扛住压力,还能帮公司合理支出?福哥答案2020-04-29: 限流(杀部分用户祭天). ...

  2. 精灵小巧的 Jsonpath 万精油:Snack3

    前几天和一个群里的朋友交流一个需求:在 Json 里像 XPath 一样找出节点,并修改值,然后输出新的Json. 很多人马上就会说,Jsonpath 啊. 是的 Jsonpath 确实能快速找出节点 ...

  3. oracle正则表达式语法介绍及实现手机号码匹配方法

    Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的.本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式 ...

  4. 【MySQL】记一次线上重大事故:二狗子竟然把线上数据库删了!!

    写在前面 估计二狗子这几天是大姨夫来了,心情很郁闷,情绪也很低落,工作的时候也有点心不在焉.让他发个版本,结果,一行命令下去把线上的数据库删了!你没听错:是删掉了线上的数据库!运营那边顿时炸了锅:怎么 ...

  5. 用C++写一个电话通讯录

    目前我也是名初学C++的菜鸟,一直在B站上看的C++的网课,这个的C++电话通讯录是我写的第一个有一些功能的代码,所以在这里想分享给初学C++的小白们,如有任何问题或是建议可以在下方评论或是私信我,下 ...

  6. VM获取子网掩码和网关

  7. linux服务器核心知识

    电脑:辅助人脑的工具 现在的人们几乎无时无刻都会碰电脑!不管是桌上型电脑(桌机).笔记型电脑(笔电).平板电脑.智慧型手机等等,这些东西都算是电脑.虽然接触的这么多,但是,你了解电脑里面的元件有什么吗 ...

  8. 使用Spring Cloud Config统一管理配置,别再到处放配置文件了

    1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 可配置是一个成熟软件系统应该提供的特性,而配置管理对于大型系统就显得十分重要,特别是对于拥有多个应用的微服务系统.可喜的是, ...

  9. Ubuntu 统计文件夹下文件个数的命令

    查看当前目录下的文件数量(不包含子目录中的文件) ls -l|grep "^-"| wc -l 查看当前目录下的文件数量(包含子目录中的文件) 注意:R,代表子目录 ls -lR| ...

  10. 牛客网PAT练兵场-锤子剪刀布

    题目地址:https://www.nowcoder.com/questionTerminal/79db907555c24b15a9c73f7f7d0e2471 题解:无 /** * *作者:Ycute ...