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



推荐阅读
  • 本文探讨了如何在PHP与MySQL环境中实现高效的分页查询,包括基本的分页实现、性能优化技巧以及高级的分页策略。 ... [详细]
  • 本文详细介绍了Java代码分层的基本概念和常见分层模式,特别是MVC模式。同时探讨了不同项目需求下的分层策略,帮助读者更好地理解和应用Java分层思想。 ... [详细]
  • 在Android应用开发过程中,开发者经常遇到诸如CPU使用率过高、内存泄漏等问题。本文将介绍几种常用的命令及其应用场景,帮助开发者有效定位并解决问题。 ... [详细]
  • H5技术实现经典游戏《贪吃蛇》
    本文将分享一个使用HTML5技术实现的经典小游戏——《贪吃蛇》。通过H5技术,我们将探讨如何构建这款游戏的两种主要玩法:积分闯关和无尽模式。 ... [详细]
  • 本文详细介绍了Oracle 11g中的创建表空间的方法,以及如何设置客户端和服务端的基本配置,包括用户管理、环境变量配置等。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • CentOS下ProFTPD的安装与配置指南
    本文详细介绍在CentOS操作系统上安装和配置ProFTPD服务的方法,包括基本配置、安全设置及高级功能的启用。 ... [详细]
  • 从CodeIgniter中提取图像处理组件
    本指南旨在帮助开发者在未使用CodeIgniter框架的情况下,如何独立使用其强大的图像处理功能,包括图像尺寸调整、创建缩略图、裁剪、旋转及添加水印等。 ... [详细]
  • 本文介绍了在Linux环境下如何有效返回命令行状态、上一级目录及快速查找头文件和函数定义的方法。包括处理长时间运行命令、编辑器退出技巧、目录导航以及文件搜索策略。 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 本文详细介绍了JQuery Mobile框架中特有的事件和方法,帮助开发者更好地理解和应用这些特性,提升移动Web开发的效率。 ... [详细]
  • MySQL InnoDB 存储引擎索引机制详解
    本文深入探讨了MySQL InnoDB存储引擎中的索引技术,包括索引的基本概念、数据结构与算法、B+树的特性及其在数据库中的应用,以及索引优化策略。 ... [详细]
  • 本文详细介绍了PHPStorm在Mac和Windows系统下的快捷键使用技巧,帮助开发者提高编程效率。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
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社区 版权所有