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



推荐阅读
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 本文探讨了 Spring Boot 应用程序在不同配置下支持的最大并发连接数,重点分析了内置服务器(如 Tomcat、Jetty 和 Undertow)的默认设置及其对性能的影响。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • andr ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 本文详细介绍了 Java 中的 org.apache.hadoop.registry.client.impl.zk.ZKPathDumper 类,提供了丰富的代码示例和使用指南。通过这些示例,读者可以更好地理解如何在实际项目中利用 ZKPathDumper 类进行注册表树的转储操作。 ... [详细]
  • Netflix利用Druid实现高效实时数据分析
    本文探讨了全球领先的在线娱乐公司Netflix如何通过采用Apache Druid,实现了高效的数据采集、处理和实时分析,从而显著提升了用户体验和业务决策的准确性。文章详细介绍了Netflix在系统架构、数据摄取、管理和查询方面的实践,并展示了Druid在大规模数据处理中的卓越性能。 ... [详细]
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社区 版权所有