热门标签 | 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



推荐阅读
  • win10下载速度慢
    运维|windows运维win10,下载,速度慢运维-windows运维秒赞源码详细说明,vscode怎么跑项目,台电安装ubuntu,tomcat记录请求报文,sqlite的数据 ... [详细]
  • mysql oneproxy稳定吗_Mysql 中间件 oneProxy总结
    建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ... [详细]
  • Java工作流引擎关于数据加密流程(MD5数据加密防篡改)
    关键字:驰骋工作流程快速开发平台工作流程管理系统工作流引擎asp.net工作流引擎java工作流引擎.开发者表单拖拽式表单工作流系统流程数据加密md5数据保密流程数据防篡改软加密适 ... [详细]
  • 本文目录一览:1、学习Python之后可以做什么工作?有哪些方向? ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • Java String与StringBuffer的区别及其应用场景
    本文主要介绍了Java中String和StringBuffer的区别,String是不可变的,而StringBuffer是可变的。StringBuffer在进行字符串处理时不生成新的对象,内存使用上要优于String类。因此,在需要频繁对字符串进行修改的情况下,使用StringBuffer更加适合。同时,文章还介绍了String和StringBuffer的应用场景。 ... [详细]
  • C语言是一个什么样的语言,为什么每个程序员都要学习
    对于大部分程序员,C语言是学习编程的第一门语言,很少有不了解C的程序员。C语言除了能让你了解编程的相关概念,带你走进编程的大门,还能让你明白程序的运行原理,比如,计算机的各个部件是 ... [详细]
  • oracle text db2,从Oracle 到DB2(一)
    在实际的软件项目的开发过程中,特别是在企业的应用系统集成(EAI)项目中广大开发人员经常遇到不同关系型数据库之间的数据移植问题。笔者根据自己在工作中的不同数据库数据移 ... [详细]
  • 第一部分:TSqlTop有两种用法1,限制查询结果集返回的行数或总行数的百分比。当将TOP与ORDERBY子句结合使用时,结果集限制为前N个已排序行;否则,以未定义的顺序返回前N个 ... [详细]
  • zend studio 9 选择自定义字体
    php教程|php手册zend,studio,选择,自定义,字体,Window,Pphp教程-php手册云监控源码,vscode下载的是zip,ubuntubios关闭,tomca ... [详细]
  • log4cpp概述与使用实例一、log4cpp概述Log4cpp是一个开源的C类库,它提供了C程序中使用日志和跟踪调试的功能,它的优点如下࿱ ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 对mysql的总结与反思_一次DB故障引起的反思和MySQL Operator选型
    前言在一次数据库故障后,我们发现业务库会根据业务的等级会划分多个MySQL实例,许多业务库会同时属于一个MySQL实例,当一个库引发问题后 ... [详细]
  • 1.1.1. Ifacrashhappensthisconfigurationdoesnotguaranteethattherelayloginfowillbeconsistent ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
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社区 版权所有