热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

故障申报系统php源码,运维不再专业救火不会PHP照样找出代码性能问题

作者:凉白开网站:www.ttlsa.com身处互联网的SA(运维)们总感叹自己职业的苦逼,Why?我来告诉你:APP奔溃、

作者: 凉白开 网站:www.ttlsa.com

身处互联网的SA(运维)们总感叹自己职业的苦逼,Why?我来告诉你:APP奔溃、网站打不开、网站502、搜索缓慢、应用卡顿通通找运维,运营、项目经理、老板等等围着运维,看其救火。有些运维甚至受到各种指责,例如:技术差、准备不充分、服务器优化的不行等等。面对千千万万的项目,运维为什么总在救火和受委屈,而研发却在不断制造BUG。

问题定位

一旦出现故障,通常先查日志,通过日志分析定位到某些服务器及项目,紧接着缩小范围至某个项目,最后SA与研发之间各种配合,最终找出问题并修复。

每次紧急救火之后,运维总会发问:为什么不能提前发现问题?是否有一个工具能让运维/开发事先发现问题并消灰掉,或者上线能够在故障出现之时快速定位到稳定。大家都应该认识到,通过常规方式来定位代码问题效率非常低,而且非常考验技术人员对业务熟悉程度以及个人技术能力。

解决方案

在日常工作中,常有人咨询我系统出现某种问题或者偶尔出现问题时怎么查找原因,除了给出解决方案以外,我总会告诉他:去试试APM吧,能够帮你快速发现问题,定位问题的原因。今天我要给SA们介绍一款国内纯自主开发的APM产品---透视宝。

透视宝功能

APM是应用性能管理(Application Performance Management)的缩写,通过对IT系统进行代码级的实时监测和分析,即时发现系统运行瓶颈,并进行告警和预警,帮助运维、开发迅速定位系统问题。透视宝包含APM(应用性能管理)、mobile、browser、host四项功能:

c41353e85903fec84d066d465432d0c7.png

透视宝之安装

透视宝的安装比较简单,透视宝官方文档也非常清楚。

透视宝之主机管理

安装完Smart Agent之后,登陆透视宝后台便能看到新增加的主机,如下图:

8c4fb2485f4f2ba88952995654dfb00c.png

今天的主题不在“主机”,既然提到了,那么我简单的给大家展示透视宝下的主机基本监控。

42f3255c6bc53ec4542581bde9ceb197.png

服务器CPU、内存、进程、网卡、TCP监控项都有。如果这些基础监控能够满足你,那么完全可以放弃Zabbix等上手困难的开源监控产品了。看看监控效果:

687b782903273d3ce19806f8e3beb8cb.png

透视宝之APM

透视宝APM目前支持主流的Java、PHP、Python、.Net四种语言的代码性能监测,PHP监测已经支持最新的PHP7正式版,我们主要以PHP为例感受一下APM的威力。

备注:起初准备拿ttlsa.com来体验,因为种种原因,最终换成了另外一个测试站点,请求量稍微少点,但是追踪PHP性能问题的方法还是一样的,一样能帮助我们找出代码性能问题。

点击应用,并选择你需要追踪的域名,通过请求、数据库、错误这三项目来找出PHP性能问题所在

3a86b7de958fac7cdc126abdc9e8f835.png

fb57b9b91b99d2b4b56021dab446a056.png

APM之请求

首先看概览图,着重看缓慢、非常缓慢、错误的比率,如果比较高,那么要引起重视。

1c1cb8a682f83256a952194a78033832.png

正常&#xff1a;<500毫秒、缓慢&#xff1a;500-2000毫秒&#xff0c;非常慢&#xff1a;>2000毫秒

透视宝列出所有请求URL&#xff0c;以及URI对应的响应时间与请求数。

125c069c870ffcba9da7e4dc49b7ecc1.png

按照响应时间排序&#xff0c;点击响应时间较长的URL&#xff0c;右侧出现如下记录

9973dfcd36d2c4975656603c3714723c.png

点击记录进行追踪&#xff0c;可以看到整个请求耗时TOP5的方法&#xff0c;并可进行代码追踪、获取请求参数、SQL语句&#xff0c;最真实的还原当时环境。

概览图

3033ed4060147c360019b46ca138d283.png

追踪详情

这里非常重要&#xff0c;耗时(MS)越长的函数/方法说明性能越差. 由此&#xff0c;基本上已经定位到了性能问题代码&#xff0c;把相应的方法截图给研发吧。发现没&#xff1f;不懂代码的你也能抓出PHP性能代码。

96eb77980542ff41771b33f0541fe7e2.png

请求参数

通过当前的请求参数最真实的还原现场

91a2091a70a3baf5415e9582a7a369fc.png

SQL语句

一个缓慢响应请求部分由代码写法不恰当引起&#xff0c;还有一部分由效率低下的慢SQL引起。透视宝能够追踪到一个请求包含的所有SQL语句&#xff1b;由此&#xff0c;我们能快速的定位到SQL问题&#xff0c;并提交给研发/DBA优化。

32aa7933f109ee7e22626af0dd394bf0.png

APM之数据库

透视宝APM能够通过”请求”找出性能差的code、性能低下的慢SQL。透视宝能够通过”数据库”找出性能低下的慢SQL&#xff0c;并找出慢SQL对应的请求。”数据库”这块建议DBA经常浏览&#xff0c;并定期优化慢SQL。

透视宝提供了非常清晰易懂的SQL性能图表&#xff0c;让开发人员清晰的了解当前SQL使用情况&#xff0c;例如&#xff1a;SQL操作响应时间(TOPS)、吞吐量(含select、delete、insert、update)

6ab79fcc510968bdf6fb63e8ee8c02ee.png

aefddd584bc66328e967bebdeb13fcef.png

透视宝会列出所有SQL操作列表&#xff0c;按照平均响应时间排序&#xff0c;选择需要解决的SQL记录&#xff0c;可定位对应请求耗时的接口/页面以及对应的慢SQL语句。

8e1e56ab9202f6458c5c19f29acbcf7b.png

5a7c6f6e6072098aecc6864adb4ae988.png

慢SQL追踪

0eac457597f693daf7e1c1bd0884955b.png

APM之错误

除了透过请求与数据库来发现问题之外&#xff0c;我们也应该经常关注”错误”。

4df5664428603d0080177989d3dbc3b2.png

附录&#xff1a;透视宝插件

SendProxy、Discover和OSAgent插件是Smart Agent默认的基础插件&#xff0c;目前Smart Agent提供的插件如下表所示。

d05705ae5a759f28471a3fa830f70401.png

479c692303742b78edf427bc6ac85b36.png



推荐阅读
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有