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



推荐阅读
  • 本文探讨了如何在日常工作中通过优化效率和深入研究核心技术,将技术和知识转化为实际收益。文章结合个人经验,分享了提高工作效率、掌握高价值技能以及选择合适工作环境的方法,帮助读者更好地实现技术变现。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • 本文探讨了2012年4月期间,淘宝在技术架构上的关键数据和发展历程。涵盖了从早期PHP到Java的转型,以及在分布式计算、存储和网络流量管理方面的创新。 ... [详细]
  • 本文介绍 SQL Server 的基本概念和操作,涵盖系统数据库、常用数据类型、表的创建及增删改查等基础操作。通过实例帮助读者快速上手 SQL Server 数据库管理。 ... [详细]
  • 本文详细介绍了优化DB2数据库性能的多种方法,涵盖统计信息更新、缓冲池调整、日志缓冲区配置、应用程序堆大小设置、排序堆参数调整、代理程序管理、锁机制优化、活动应用程序限制、页清除程序配置、I/O服务器数量设定以及编入组提交数调整等方面。通过这些技术手段,可以显著提升数据库的运行效率和响应速度。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • TechStride 网站
    TechStride 成立于2014年初,致力于互联网前沿技术、产品创意及创业内容的聚合、搜索、学习与展示。我们旨在为互联网从业者提供更高效的新技术搜索、学习、分享和产品推广平台。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • MySQL InnoDB Double Write机制详解
    本文深入探讨了MySQL InnoDB存储引擎的Double Write技术,该技术通过在内存和磁盘上创建数据页的副本,确保了部分写失效(Partial Page Write)情况下的数据完整性和可靠性。同时,文章介绍了InnoDB以页为单位进行读取和更新的机制,并详细解析了Double Write的工作原理。 ... [详细]
  • 全面解析运维监控:白盒与黑盒监控及四大黄金指标
    本文深入探讨了白盒和黑盒监控的概念,以及它们在系统监控中的应用。通过详细分析基础监控和业务监控的不同采集方法,结合四个黄金指标的解读,帮助读者更好地理解和实施有效的监控策略。 ... [详细]
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社区 版权所有