.NET性能排查
概述
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性能排查的更多相关文章
- Sql Server CPU 性能排查及优化的相关 Sql
Sql Server CPU 性能排查及优化的相关 Sql 语句,非常好的SQL语句,记录于此: --Begin Cpu 分析优化的相关 Sql --使用DMV来分析SQL Server启动以来累计使 ...
- Nginx 日志分析及性能排查
Nginx 日志分析及性能排查 2017-03-04 Linux爱好者 (点击上方公众号,可快速关注) 作者:-外星人- my.oschina.net/362228416/blog/844713 如有 ...
- 重新整理 .net core 实践篇 ———— linux上性能排查 [外篇]
前言 该文的前置篇为: https://www.cnblogs.com/aoximin/p/16839830.html 本文介绍性能排查. 正文 上一节是出现错误了,如何去排查具体问题. 这一节介绍一 ...
- Sql Server性能排查和优化懒人攻略
转载自作者zhang502219048的微信公众号[SQL数据库编程]:Sql Server性能排查和优化懒人攻略 很多年前,笔者那时刚从广东技术师范学院(现为广东技术师范大学,以前为广东民族学院)的 ...
- mysql性能排查思路
mysql性能瓶颈排查 top/free/vmstat/sar/mpstat 查看mysqld进程的cpu消耗占比 确认mysql进程的cpu消耗是%user, 还是sys%高 确认是否是物理内存 ...
- 一站式学习Wireshark(四):网络性能排查之TCP重传与重复ACK
作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端.但用户感到网络运行缓慢并不意味着就是网络问题. 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起.之后阐 ...
- Wireshark(四):网络性能排查之TCP重传与重复ACK
原文出处: EMC中文支持论坛 作为网络管理员,很多时间必然会耗费在修复慢速服务器和其他终端.但用户感到网络运行缓慢并不意味着就是网络问题. 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重 ...
- 性能排查--CPU占用高
排查思路: 1.先找到占用CPU高的进程PID top命令 2.top -H -p <PID> 查看哪个占用CPU高的线程TID 3.jstack <PID> /ho ...
- bfrd collector性能排查
1.2.09上昨天timeout在18点23分-22点10分 2.检测2.17网卡流量,sar -f /var/log/sa/sa06 -n DEV,发现这段时间刚好是rxpck/s超过6400. ...
随机推荐
- 商业分析-04行为&业务相关数据指标
[访问深度]用户对产品的了解程度 [弹出率] 弹出率是基于访问回话的 而不是基于页面的,上图中1 4 6 是属于弹出
- .Net 桌面程序(winform,wpf,跨平台avalonia)打安装包部署到windows 入门
.Net 桌面程序(winform,wpf,跨平台avalonia)部署到windows 入门 本文以为avalonia为例,用Setup Factory 将.Net桌面程序(winform,wpf, ...
- Python基础入门知识点——Python中的异常
前言 在先前的一些章节里你已经执行了一些代码,你一定遇到了程序“崩溃”或因未解决的错误而终止的情况.你会看到“跟踪记录(traceback)”消息以及随后解释器向你提供的信息,包括错误的名称.原因和发 ...
- 火题大战Vol.0 B 计数DP
火题大战Vol.0 B 题目描述 \(n\) 个沙茶,被编号 \(1\)~$ n$.排完队之后,每个沙茶希望,自己的相邻的两人只要无一个人的编号和自己的编号相差为 \(1\)(\(+1\) 或\(-1 ...
- LinkedBlockingQueue 和 ConcurrentLinkedQueue的区别
1. 简单的开篇 LinkedBlockingQueue 和 ConcurrentLinkedQueue 是 Java 高并发场景中最常使用的队列.尽管这两个队列经常被用作并发场景的数据结构,但它们之 ...
- [PyTorch 学习笔记] 1.2 Tensor(张量)介绍
本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson1/tensor_introduce1.py https: ...
- 为什么 java.util.Stack不被官方所推荐使用!
Java 为什么不推荐使用 Stack 呢? 因为 Stack 是 JDK 1.0 的产物.它继承自 Vector,Vector 都不被推荐使用了,你说 Stack 还会被推荐吗? 当初 JDK1.0 ...
- HDFS的数据流读写数据 (面试开发重点)
1 HDFS写数据流程 1.1 剖析文件写入 HDFS写数据流程,如图所示 1)客户端通过Distributed FileSystem模块向NameNode请求上传文件,NameNode检查目标文件是 ...
- Today At AntDock 2020年8月21日
前段时间,我在 Mac 上使用 CLion 进行 C++ 编译,但发现 #include<bits/stdc++.h> 居然出了问题,无法使用,Xcode 也不行.我试图查找资料,但一般都 ...
- [HDU6793] Tokitsukaze and Colorful Tree
题目 又是一个条历新年,窗前的灼之花又盛开了. 时隔多年,现在只有这一棵树上盛开着残存的 \(n\) 朵灼之花了. 尽管如此,这些灼之 花仍散发出不同色彩的微弱的光芒. 灼之花的生命极为短暂,但它的花 ...