服务器性能剖析(profiling)之——简介

性能剖析(profiling)是专注于测量服务器时间花费在哪里的一种技术,这里“性能即响应时间”。

测量是一项很有挑战性的工作,并且分析结果也同样有挑战性,测出时间花在哪里,和知道为什么花在那里是两码事……

性能剖析一般有两个步骤

测量任务所花费的时间;

对结果进行统计和排序,将重要的任务排到前面。

关于性能剖析报告

任务名、任务的执行时间、任务的消耗时间、任务的平均执行时间、该任务执行时间占全部时间的百分比。

性能剖析报告会按照任务的消耗时间进行降序排序。

有两种比较常见的情况会导致不合适的测量

1、在错误的时间启动和停止测量

2、测量的是聚合后的信息,而不是目标活动本身

完成一项任务所需要的时间可以分成两部分:执行时间和等待时间。因此,性能剖析也有两种类型:基于执行时间的分析和基于等待的分析。

基于执行时间的分析:研究的是什么任务的执行时间最长

基于等待的分析:判断任务在什么地方呗阻塞的时间最长

如果不能确认问题是出在执行还是等待上,那么两种方式都需要试试。

有很多因素会导致性能瓶颈:

1、外部资源,比如调用了外部的Web服务器或者搜索引擎

2、应用要处理大量的数据,比如分析一个超大的XML文件

3、在循环中执行昂贵的操作,比如滥用正则表达式

4、使用了低效的算法,比如使用暴力搜索算法来查找列表中的项

性能剖析很好用的一个工具:New Relic。下面简单说一下这个工具的使用(其他网页摘录的内容):

需要在网站上注册一个新帐号,根据服务器端的应用框架选择安装对应的插件,它提供了很多常见应用框架插件,以Rails为例子,只需要在Gemfile配置,执行bundle install即可:

gem ‘newrelic_rpm‘

然后下载对应的newrlic.yml配置文件,放入到应用目录,进行一些参数的调整。将应用重新部署以后,等几分钟,让插件收集到性能相关数据,再去访问NewRelic网站,就可以看到各种图表了

详细的内容可到它的官网去自行研究一下:https://newrelic.com/

时间: 2024-09-27 16:24:06

服务器性能剖析(profiling)之——简介的相关文章

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

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

《高性能MySQL》- 03 服务器性能剖析

最近Python关于协程和元编程我实在看不下去了,就来补一下MySQL的坑,第二章关于基准测试的部分先放着,放到最后再说. 先说重点吧,3-6掌主要是讲优化的.我看了一遍只能说懵懂懵懂,就借着写blog的机会再次学习一下. 我们常遇到的三个性能相关的服务请求是:如何确认服务器是否达到了性能最佳状态,找出某条语句为什么执行不够快,以及诊断被用户描述成“停顿”,“堆积”或者“卡死”的某些间歇性疑难故障. 性能优化简介 关于性能的描述,基于不同的环境每个人的理解可能都不同.这里我们将性能规定一下,将其

MySQL之服务器性能剖析

关于mysql服务器性能,可能需要关注的点会比较多,如:如何确认服务器是否达到了性能最佳的状态,找出某条语句为什么执行不够快,以及诊断被用户描述成“停顿“,“堆积“或者“卡死“的某些间歇性疑难故障.这看起来很不简单.但是事实证明,有一个简单的方法能够从噪声中发现苗头. 这个方法就是专注于测量服务器的时间花费在哪里,使用的技术则是性能剖析. mysql性能的问题,可能不同人会有不同的说法.例如:每秒查询数,cpu利用率,可扩展性  等等. 每个人在不同场景对性能有不同的理解. 但在这我们将给出一个

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

MySQL性能优化介绍 什么是性能优化呢?其实我们往往从广义的定义是觉得一个MySQL系统的非功能性的优化都会看作是性能优化,比如我们会将数据库服务器的稳定性.每秒执行的SQL查询数目.系统的可扩展性.cpu利用率等等特性的优化都会看成是MySQL的性能优化. 我个人比较赞同本书的观点是MySQL性能优化应该就是指MySQL的查询响应时间的优化,MySQL性能优化就是将查询响应时间优化到一个客户或者用户体验能够接受的一个程度.

第03章 服务器细性能剖析

如何确认服务器达到了最佳性能状态,找出某条语句为什么执行不够快,找到服务器卡顿的问题 1 性能优化 性能测试并不会降低cpu利用率.而应该是测试应用大多数的时间花费在哪里,对这部分进行优化. 优化任务的执行时间,应该测试定位不同的子任务花费的时间,然后通过: 优化花费时间多的子任务 降低子任务的执行频率 2 性能剖析 1.1 通过性能剖析优化 性能剖析是测量和分析任务的时间花费在哪里的主要办法,通常步骤为: 测试任务所花费的时间 对结果进行统计和排序,将重要的任务排到前面 在任务开始时启动计时器

第003篇 服务器性能分析

谈到服务器性能,可能第一个从脑中蹦出来的是:查询速度?这确实是我们最常接触的方面,但性能其实还包括例如CPU利用率.可扩展性等很多方面.通过总结发现,不管修改的是哪一方面,最终都在影响一个量:时间.因此不妨将性能定义为:完成任务所需时间的度量(性能即响应时间).那什么是优化呢?如果认为优化是降低CPU使用率 那么此时可能你的任务需要更长的时间来完成.如果认为是提升了每次查询(select,update,delete,insert等)的量,这其实只是吞吐量的优化,此时你的CPU的压力可能已经增大了

HTML5实战与剖析之WebSockets简介

HTML5 WebSockets规范定义了一个API,允许web页面使用WebSockets协议与远程主机双向沟通.介绍了WebSocket接口,并定义了一种全双工通信通道,通过一个套接字在网络上.HTML5 WebSockets提供极大的减少了不必要的网络流量和延迟而不能攀登的轮询和长轮询的解决方案是用来模拟全双工连接通过维护两个连接. HTML5 WebSockets账户代理和防火墙等网络危害,使得流媒体可以在任何连接,和能够支持在单个连接上游和下游的通信,HTML5 WebSockets-

Web服务器性能优化

Web 服务器性能与站点访问性能优化思路 要优化 Web 服务器的性能,我们先来看看 Web 服务器在 web 页面处理上的步骤:1.Web 浏览器向一个特定的服务器发出 Web 页面请求;2.Web 服务器接收到 web 页面请求后,寻找所请求的 web 页面,并将所请求的 Web 页面传送给 Web 浏览器;3.Web 浏览器接收到所请求的 web 页面内容,并将它显示出来. 上面三个步骤都关系 Web 服务器,但实际 Web 服务器性能相关最大的是在第 2 步,这里 Web 服务器需要寻找

ANTS Performance Profiler 8:支持对Web请求、异步代码和WinRT的性能剖析

下载与激活:http://download.csdn.net/detail/lone112/6734291 离线激活 位于英国的Red Gate Software有限公司最近发布了ANTS Performance Profiler 8 Beta,支持对Web请求.异步代码和Windows商店应用的性能剖析.该版本还支持SharePoint 2013和一个新的时间线,这使开发者不但能够监控应用程序的性能,还能深入到想要检查的具体区域. Web请求剖析使开发者能够捕获向外的HTTP请求,其中包括请求