如何使用工具进行线上 PHP 性能追踪及分析?

工作了一两年的 PHPer 大概都多多少少知道一些性能分析的工具,比如 Xdebug、xhprof、New Relic 、OneAPM。使用基于 Xdebug 进行 PHP 的性能分析,对于本地开发环境来说是够用了,但如果是线上环境的话,xdebug 消耗较大,配置也不够灵活。相比 Xdebug ,xhprof 性能消耗较小,但是 xhprof 注入代码后我们还需要实现保存 xhprof 数据以及展示数据的 UI,听起来似乎又是一大堆工作。

很多人都知道,New Relic 和 OneAPM 是两款类似的性能分析工具,通过简单的安装之后,就有现成的图表和分析数据可用。前一段时间尝试过线上使用 New Relic ,估计是因为墙的原因,造成了 php-fpm 进程阻塞,具体表现为 netstatphp-fpm 开启的端口始终不回收,墙内环境使用墙外服务器很难保证服务的稳定性,所以今天主要介绍一下国内这款 OneAPM PHP性能分析产品

PHP Agent 的安装与简易用法

注册账户后, OneAPM 会提供一个 License Key,下载 PHP Agent 之后,执行安装脚本:

1. 解压 Agent 安装包

tar -xzf OneAPM_php_Agent_latest.tar.gz

2.定位至「安装包所在路径」

cd oneapm-php5-linux-install-script

3. 执行安装脚本

sudo ./oneapm-install install --license=BQ4NSVlMX399eAhNWUdfVE790d1

如果提示未找到 PHP 路径或安装失败,执行下面这条一键安装命令:

sudo ./oneapm-install install --php-path=/usr/local/php5/bin --php-ini-file=/usr/local/php5/etc/php.ini --license=BQ4NSVlMX399eAhNWUdfVE790d1

根据服务器 PHP 环境修改上面命令中 PHP 路径、php.ini 路径和授权码,修改后执行这一键安装命令。

等待安装脚本执行。若出现以下信息,则安装成功。

OneAPM is now installed on your system. Congratulations! Restart your web server or servers.
Any question join qq group:321095806 or contact http://support.oneapm.com

安装完成之后,重启 Apache 或 php-fpm。然后,稍等片刻,等待 OneAPM 接收 Agent 发送的数据。

PHP 性能追踪及分析

总览

Dashboard 中查看到具体某个时间段整个系统的稳定程度,我们在图上看到了一个异常波峰,时间在早上6点左右,通过列表筛选器移除 WEB External 后看图。其他业务都很正常,执行到最后 PHP 层,平均时间也只用了 10ms 左右。回到上图点击波峰的指示器可以看到具体明细。

应用吞吐量:是指应用程序每分钟被调用的次数(cpm,即 Calls Per Minute),吞吐量可以反映应用系统对于用户请求的响应能力。

响应时间图主要由 4 部分组成:

  • Web 事务:应用中 Web 事务的响 应时间;
  • Database:应用中 SQL 语句的响应时间;
  • WEB External :HTTP 请求第三方服务调用;
  • 后台任务:代表应用中 后台任务的执行时间;

外部服务 WEB External

WEB External 外部服务,是指应用在运行时所调用的其他外部应用提供的服务,通常由第三方通过 API 提供,使调用者可以使用第三方提供的相应服务。

刚才我们在总览页面发现 WEB External 耗时很多,当打开详情时可以明显看到,原来是微信的接口在6点钟抽了。同样该页面还可以监控到第三方服务调用的响应情况。比如 217ms 的 api.hitokoto.us 服务。

SQL 缓慢的监控

OneAPM 数据库功能可以选择数据库类型,包括“All、Database、选择 Database,则展示数据库的相关信息,同时会增加展示“增、 删、改、查”4 类 SQL 语句的响应时间和吞吐量图;Database、MongoDB、Redis、Memcache(d)”5 项。SQL 语句栏可以按照“总响应时间从长到短”、“平均响应时间从长到短”、“吞吐量从高到低”来进行排序。

举例:通过 Web 事务的响应时间占比查看到一个脚本执行时间相对过长,通过下图可以看到数据库查询占了579ms。通过切换到详情页面,可以看到整个脚本的调用过程,最终发现是程序 mysqli.php:88 行执行的查询占用了过长的时间。


以上只是通过 OneAPM 持续检查程序稳定性的一个基本方法。

程序在日常运行中由于受到的访问量不同,很有可能在某个时间点上出现大面积的延迟,比如并发突然增高或访问某一部分接口的比例突然过高,而平时 Apdex 指标却看起来非常漂亮,那么这个时候通过 OneAPM 就很容易发现程序中影响性能的部分,从而继续改进或优化代码。

性能实战:Wordpress 怎么分析性能瓶颈?

起因是这样子的,朋友有个国外的网站(针对外国人),最近网站挂掉了,就帮忙各种修复了。
但是我本地测试了下网页访问非常慢,其实在我给搞之前也一直如此。。

如下图,第一个请求异常的慢。这个是 contact-us 页面的访问,不涉及太多 sql 查询,也没啥图片。
我点了几个页面都是第一个请求异常的慢 (>10s).

内存,各种都正常,MySQL 慢查询也看了没问题。。

后来终于通过 OneAPM 发现,主要原因在于: wp 使用的主题有个会检查主题最新更新事件,判断依据就是,$now-$last 如果大于 6 个小时,就去主题官网检查下更新,而 $last 打印出来居然是 2014 的,主题已经 N 久没更新了。。。所以每次请求都会有检查,好像他们主题网站已经跪掉了,所以每次检查需要 10 秒钟。。。

去掉之后,第一个请求时间瞬间从十几秒二十秒降到 1 秒了,除了首页,其他页面算是秒开了~~

有图为证:

时间: 2024-11-10 11:12:46

如何使用工具进行线上 PHP 性能追踪及分析?的相关文章

影片《刺杀金正恩》将在太平洋时间圣诞节进行线上的上映

摘要: 在经历了一连串上还是不上的犹豫与纠结后,索尼最终宣布,影片<刺杀金正恩>将在太平洋时间圣诞节早上10点起进行线上的上映,消费者可以通过官网.YouTube.Google Play store,以及 在经历了一连串"上"还是"不上"的犹豫与纠结后,索尼最终宣布,影片<刺杀金正恩>将在太平洋时间圣诞节早上10点起进行线上的上映,消费者可以通过官网.YouTube.Google Play store,以及微软的Xbox Video stor

影片《刺杀金正恩》将在圣诞节早上10点起进行线上的上映

摘要: 在经历了一连串上还是不上的犹豫与纠结后,索尼最终宣布,影片<刺杀金正恩>将在太平洋时间圣诞节早上10点起进行线上的上映,消费者可以通过官网.YouTube.Google Play store,以及 在经历了一连串"上"还是"不上"的犹豫与纠结后,索尼最终宣布,影片<刺杀金正恩>将在太平洋时间圣诞节早上10点起进行线上的上映,消费者可以通过官网.YouTube.Google Play store,以及微软的Xbox Video stor

进行线上销售的品牌将有机会享受行业整体的大发展

2011年网购市场大约可达到2049亿元,增速达到94.7%.目前进行线上销售的品牌将有机会享受行业整体的大发展. 以生产高端纺织品为主的企业仍有获得相对较高利润和扩大产量的可能,但是由于全球整体消费需求,尤其是高端服装原料的需求,在短期内都不会十分旺盛,此类企业的规模增速不会太高.从长期来看,消费升级的概念将持续数年,国内品牌服装家纺的销售将随之发展,二季度很可能会触底回升. 服装行业网购和奢侈品消费增速显著,2011年网购市场大约可达到2049亿元,增速达到94.7%.目前进行线上销售的品牌

在 RedHat Linux 上做性能调优

在 RedHat Linux 上做性能调优 性能调优的目的是提高系统性能,减少电力消耗,或者减轻某个应用对系统中其它应用的影响.但是如果贸然地,没有适当的手段进行系统调优,那可能会产生负面效果. 如果我们有系统有计划地进行性能调优,那么它就会成为严谨的科学探索而不是随心所欲的艺术行为. 具体方法 首先我们需要弄明白"正常"的系统性能情形是什么样的. 查找潜在的性能问题并进行参数调优来修复.观察这些调整对系统的影响并决定是否确认保持这种调整或者恢复到调整前的状态. 概要: 收集数据,建立

县级SNS网站如何利用相亲大会进行线下推广

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 我的地方sns网站栾川吧建立有段时间了,但是和很多的sns网站一样,都有个通病,那就是人气不怎么高,不很活跃.当然,期间也组织过线下活动,<如何利用春节期间网友聚会进行线下推广的真实案例 > 我在大年初二发表的这篇文章,就是在我策划了春节期间栾川吧会员聚会活动之后,给大家的经验分享.但是一活动产生的宣传效应只能持续有限的一段时间,

浅谈对本地论坛进行线下推广的经验要素

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 互联网的发展越来越向细分化方向行走了,那么作为地方论坛也属于细分的行业之一,那么当你选择做一份地方论坛的时候,就一定要考虑到作为本地论坛的线下推广应该如何做才能最大化的提高论坛的人气和人脉,只有当线下做好了,你才能在这个地区拥有自己的一亩三分地,并且让更多的用户参与进来,从而活跃下去.那么关于本地论坛线下推官有哪些要素呢? 首先呢,论坛要针对

地方论坛用discuz如何结合QQ群进行线下推广

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 作为一个7474.html">草根站长,要运营一个大型的论坛那是很不现实的,无论精力与财力那都是不允许的.所以,地方性论坛就成了一个很好的选择.选择一个与自身相关的小型县市,无论从竞争度,还是从可操作性,都具有一定的成功机率. 国内几乎90%以上的论坛是基于discuz 和 phpwind 这两个程序搭建的,这边不讨论孰优孰劣

巧用Terraform和Packer开源工具完成云上自动运维

2017年在线技术分会--运维/DevOps在线技术峰会上,来自阿里云的黎山分享了利用开源DevOps工具完成云上的自动运维的实践.她首先通过对5个应用场景的分析引出了"自动化能自动化的一切"的理念.然后介绍了使用Terraform和Packer开源工具完成云上自动运维的具体实现过程.最后对多工具组合案例进行了分享.   以下内容根据直播视频整理而成.   云计算的特点是开箱即用,可以随时扩缩容,不用考虑硬件的损坏问题,而且有丰富的云平台和云产品供选择. 应用场景分析 应用1 某应用1

2011最火爆的建站工具!史上最牛自助建站软件

2011最火爆的建站工具!史上最牛自助建站软件,轻松建站不求人! 卓天网络http://www.e000.com/design/?s=ling 模板功能 模板选择 :我们提供多款精美模板可以选择,您可以随时更换您所喜欢的模板   结构选择 :我们提供多种网站结构选择,每个结构下有不同风格的模板   自定义模板 : 对于掌握一定技术的客户,我们提供自定义模板css和模板图片的功能,您可以更自由使用和设计您的模板 页面模块功能 文字模快 : 可在页面添加文字的工具,支持图片.表格.超链接文字等.能够