设为首页 收藏本站
查看: 665|回复: 0

[经验分享] 运维不再专业救火 不会PHP照样找出代码性能问题

[复制链接]

尚未签到

发表于 2018-12-17 13:12:10 | 显示全部楼层 |阅读模式
  作者: 凉白开 网站:www.ttlsa.com
  身处互联网的SA(运维)们总感叹自己职业的苦逼,Why?我来告诉你:APP奔溃、网站打不开、网站502、搜索缓慢、应用卡顿通通找运维,运营、项目经理、老板等等围着运维,看其救火。有些运维甚至受到各种指责,例如:技术差、准备不充分、服务器优化的不行等等。面对千千万万的项目,运维为什么总在救火和受委屈,而研发却在不断制造BUG。
问题定位
  一旦出现故障,通常先查日志,通过日志分析定位到某些服务器及项目,紧接着缩小范围至某个项目,最后SA与研发之间各种配合,最终找出问题并修复。
  每次紧急救火之后,运维总会发问:为什么不能提前发现问题?是否有一个工具能让运维/开发事先发现问题并消灰掉,或者上线能够在故障出现之时快速定位到稳定。大家都应该认识到,通过常规方式来定位代码问题效率非常低,而且非常考验技术人员对业务熟悉程度以及个人技术能力。
解决方案
  在日常工作中,常有人咨询我系统出现某种问题或者偶尔出现问题时怎么查找原因,除了给出解决方案以外,我总会告诉他:去试试APM吧,能够帮你快速发现问题,定位问题的原因。今天我要给SA们介绍一款国内纯自主开发的APM产品---透视宝。
透视宝功能
  APM是应用性能管理(Application Performance Management)的缩写,通过对IT系统进行代码级的实时监测和分析,即时发现系统运行瓶颈,并进行告警和预警,帮助运维、开发迅速定位系统问题。透视宝包含APM(应用性能管理)、mobile、browser、host四项功能:
DSC0000.png

透视宝之安装
  透视宝的安装比较简单,透视宝官方文档也非常清楚。
  请直接看文档:http://portal.toushibao.com/app/create
透视宝之主机管理
  安装完Smart Agent之后,登陆透视宝后台便能看到新增加的主机,如下图:
DSC0001.png

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

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

透视宝之APM
  透视宝APM目前支持主流的Java、PHP、Python、.Net四种语言的代码性能监测,PHP监测已经支持最新的PHP7正式版,我们主要以PHP为例感受一下APM的威力。
  备注:起初准备拿ttlsa.com来体验,因为种种原因,最终换成了另外一个测试站点,请求量稍微少点,但是追踪PHP性能问题的方法还是一样的,一样能帮助我们找出代码性能问题。
  点击应用,并选择你需要追踪的域名,通过请求、数据库、错误这三项目来找出PHP性能问题所在
DSC0004.png

DSC0005.png

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

  正常:2000毫秒
  透视宝列出所有请求URL,以及URI对应的响应时间与请求数。
DSC0007.png

  按照响应时间排序,点击响应时间较长的URL,右侧出现如下记录
DSC0008.png

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

  •   概览图
DSC0009.png


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


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


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

APM之数据库
  透视宝APM能够通过”请求”找出性能差的code、性能低下的慢SQL。透视宝能够通过”数据库”找出性能低下的慢SQL,并找出慢SQL对应的请求。”数据库”这块建议DBA经常浏览,并定期优化慢SQL。
  透视宝提供了非常清晰易懂的SQL性能图表,让开发人员清晰的了解当前SQL使用情况,例如:SQL操作响应时间(TOPS)、吞吐量(含select、delete、insert、update)
DSC00013.png

DSC00014.png

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

DSC00016.png

  慢SQL追踪 DSC00017.png
APM之错误
  除了透过请求与数据库来发现问题之外,我们也应该经常关注”错误”。
DSC00018.png

附录:透视宝插件
  SendProxy、Discover和OSAgent插件是Smart Agent默认的基础插件,目前Smart Agent提供的插件如下表所示。
DSC00019.jpg

DSC00020.jpg

DSC00021.png



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-652462-1-1.html 上篇帖子: php语法 下篇帖子: 使用phpMyAdmin时出现PHP 5.3+is required的解决方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表