【性能诊断】三、单功能场景的性能分析(RedGate Profiler)

上一篇我们简单的对客户前端和数据库后端的性能问题进行了定位,如果排除了这两块,问题基本就确定在应用服务器上。但是我们往往对应用服务器,或者说应用程序的性能最陌生,一旦出现性能问题往往有无所适从的感觉,虽然我们的对应用程序的代码最熟悉。

原因有这么几项:

  1. 系统庞大、业务复杂时,如果从代码审查入手,主观性因素影响较大;如果在各处代码中增加log统计响应时间,很不方便、也不科学,且工作量很大;
  2. 自己维护的代码调用了其他模块的接口,无从下手;与其他模块同事交流时,描述复杂、沟通困难;
  3. Oracle环境不方便跟踪SQL脚本的执行记录,Sqlserver虽然能够做到到,但跟踪到其他模块的SQL也不知道是哪个方法调用的;

基于这些原因,另一个强大的工具诞生了---ANTS RedGate Performance Profiler

下载地址:http://www.red-gate.com/products/

RedGate与VS自带的分析工具对比

Visual Studio Performance Profiler

Visual Studio 分析工具的采样分析方法按设置的时间间隔中断计算机处理器并收集函数调用堆栈。

1.专用术语太多,分析报告不易理解

2.操作复杂、与VS集成

3.不能将SQL执行、文件操作同步抓取分析

RedGate Performance/Memory Profiler

RedGate基本工作原理是在.NET编译出的IL代码里放入钩子用来记录时间,然后通过直观的界面显示出哪部分代码耗能最大。

1.可视化界面、操作简洁,直观的展现系统的性能响应与内存分配情况;

2.能够捕捉到SQL脚本与执行时间,SQL与.NET代码关联切换;

3.可以针对指定线程进行特定分析,便于快速定位问题;

使用示例

启动Performance,注意再测试时使用新的Profile端口。

使用鼠标选中指定时间区间后,redgate自动会进行分析,缺省我们看到的是Call Tree视图,此处我们注意三点:

  1. Call Tree显示该时间段内进程的线程调用堆栈和对应的CPU消耗及方法调用次数;可以推测出循环、递归等代码;
  2. 此时我们看到的是CPU执行时间占比(或执行时间),不包含SQL执行、网络、文件等IO阻塞的等待时间;
  3. 如果是debug的dll又有对应的pdb文件,选中指定方法,可以直接查看到源代码;

切换到Method grid, 按照方法执行的总时间倒序,不考虑调用关系;利用隐藏指定命名空间(或仅显示指定命名空间),可以方便查找并突出问题;

Database calls视图 展示所有的数据库SQL访问,缺省按执行时间倒序,SQL脚本后面有.NET图标,可以快速定位到该SQL的程序调用堆栈;Call tree中的SQL脚本图标,同样可以快速返回到Database calls界面;

另外,为选中区域命名,方便后期分析,提高工作效率;当后台处理较复杂,如使用了多线程,或者一个功能对应很多http请求时,可以按指定线程分析问题;

介绍类的内容就不做过多的介绍了,下一篇会以一个例子,使用redgate诊断一个刚接触貌似很诡异问题。

时间: 2024-08-05 21:17:58

【性能诊断】三、单功能场景的性能分析(RedGate Profiler)的相关文章

【性能诊断】二、单功能场景的性能分析(fiddler、SQL Profiler)

Fiddler fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,在诊断分析问题时,都有很大的帮助. 下载地址:http://www.telerik.com/download/fiddler 工作原理和使用说明可参考:http://www.cnblogs.com/TankXiao/archive/2012/02/06/2337728.html 当然我们如果

【性能诊断】四、单功能场景的性能分析(RedGate,找到同一个客户端的并发请求被串行化问题)

问题描述: 客户端js连续发起两个异步http请求,请求地址相同,但参数不同:POST http://*.*.*.*/*****/webservice/RESTFulWebService/RESTFulHandlerForWeb.ashx HTTP/1.1 服务器端第二方法的响应时间明显很长(不正常),在ProcessRequest方法上增加日志后发现,第二个方法的开始时间明显延迟了大约0.5秒 后台跟踪发现累计SQL执行时间不超过50毫秒: 使用log记录应用处理的响应时间(11表示handl

Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和性能分析)

java 集合系列目录: Java 集合系列 01 总体框架 Java 集合系列 02 Collection架构 Java 集合系列 03 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列 04 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列 05 Vector详细介绍(源码解析)和使用示例 Java 集合系列 06 Stack详细介绍(源码解析)和使用示例 Java 集合系列 07 List总结(LinkedList, ArrayList等使用场景和

(转)Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)

概要 前面,我们学完了List的全部内容(ArrayList, LinkedList, Vector, Stack). Java 集合系列03之 ArrayList详细介绍(源码解析)和使用示例 Java 集合系列04之 fail-fast总结(通过ArrayList来说明fail-fast的原理.解决办法) Java 集合系列05之 LinkedList详细介绍(源码解析)和使用示例 Java 集合系列06之 Vector详细介绍(源码解析)和使用示例 Java 集合系列07之 Stack详细

【性能诊断】一、开篇

在使用.NET进行快速地上手并开发出应用程序后,接下来面临的可能就是系统性能调优方面的问题,尤其是目前的系统大多异常庞大而复杂,性能问题的诊断与调优工作更显得无从下手.一般来说诊断调优工作需要广泛的知识与经验,不单单是代码或SQL的经验,还要对业务逻辑.系统架构设计.应用程序编写.操作系统.网络环境.各种侦测与监控工具.硬件等等,都有基本的了解,才能在复杂的系统中找到症结所在. 记得以前看到过,微软的性能调校文件上标示着各种元素所占的百分比:之前的经验19%.解决问题的能力22%.是否有完备的顾

60,000毫秒内对Linux的性能诊断效的方法

转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0225/168.html?1456484140 60,000 毫秒内对 Linux 的性能诊断 当你为了解决一个性能问题登录到一台 Linux 服务器:在第一分钟你应该检查些什么? 在 Netflix,我们有一个巨大的 EC2 Linux 云,以及大量的性能分析工具来监控和诊断其性能.其中包括用于云监控的 Atlas,以及用于按需实例分析的 Vector.虽然这些工具可以帮助我们解决大多数问题,但

利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断

概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问题进行"贯穿"的诊断,才能算是"端到端"的诊断. 能够进行这种类型的诊断的工具很多,我们后面会分别介绍,今天只是给大家看看利用Oracle的工具软件进行从最前端到最后端的应用性能诊断的例子. 涉及的Oracle软件产品有以下几个: RUEI(真是的客户体验洞察) EM1

【MySQL】《高性能MySQL》 学习笔记,第三章,服务器性能剖析

第三章:服务器性能剖析 ? 本章将针对如下三个问题进行解答: ? 如何确认服务器是否达到了性能最佳的状态 ? 找出某条语句为什么执行不够快 ? 诊断被用户描述成"停顿","堆积","卡死"的某些间歇性疑难故障 1.性能优化简介: ? 针对性能问题,1000个DBA,有1000个回答.诸如,"QPS","CPU Load","可扩展性"之类. 原则一:我们将性能定义为完成某件任务所需要的时

Oracle性能优化之性能诊断工具_超越OCP精通Oracle视频教程培训33

Oracle性能优化之性能诊断工具_超越OCP精通Oracle视频教程培训33 课程介绍 Oracle视频教程,风哥本套oracle教程培训<<Oracle数据库性能优化培训教程>>的第3/10套:Oracle性能优化之性能诊断工具.主要学习Oracle性能优化,Oracle自带性能诊断工具介绍,日常维护中的性能工具操作过程,awr性能数据的收集时间,awr自动收集性能报告如何实现,awr手工快照如何实现,awr baseline的手工调整与管理,awr性能相关的视图介绍,awr性