位置: 编程技术 - 正文

Linux系统下使用XHProf和XHGui分析PHP运行性能(linux怎样使用)

编辑:rootadmin

推荐整理分享Linux系统下使用XHProf和XHGui分析PHP运行性能(linux怎样使用),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux怎样使用,linux怎样使用,linux用yum,linux如何使用,linux 使用,linux用yum,linux使用方式有哪些方面,linux使用方式有哪些方面,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是性能分析?性能分析是衡量应用程序在代码级别的相对性能。性能分析将捕捉的事件包括:CPU的使用,内存的使用,函数的调用时长和次数,以及调用图。性能分析的行为也会影响应用性能。什么时候应该进行性能分析?在考虑是否进行性能分析时,你首先要想:应用是否存在性能问题?如果有,你要进一步考虑:这个问题有多大?

如果你不这样做,将会陷入一个陷阱——过早优化,这可能会浪费你的时间。

为了评断应用是否存在性能问题,你应该确定性能目标。例如, 个并发用户的响应时间小于 1s 。然后,你需要进行基准测试,看是否达到这个目标。一个常见的错误是,在开发环境进行基准测试。事实上,你必须在生产环境进行基准测试。(实际生产环境或模拟的生产环境,后者很容易在 SaaS 实现。用于基准测试的产品很多,包括 ab,siege 和 JMeter。我个人比较喜欢 JMeter 的功能集,但 ab 和 siege 更加易用。

一旦你确定应用存在性能问题,就需要分析其性能,实施改进,然后再一次进行基准测试,查看问题是否解决。每一次变更之后,你都该进行基准测试查看效果。如果你做了很多变更,却发现应用性能有所下降,你就无法确定具体是哪一次变更导致了这个问题。

下图是我定义的性能生命周期:

性能下降的一般原因导致性能下降的一般原因中,有些相当出人意料。即便是像 PHP 这样的高级语言,代码的好坏也很少是问题的根源。在当今的硬件配置条件下,CPU 很少是性能限制的原因。常见的原因反而是:

数据存储

PostgreSQL MySQL Oracle MSSQL MongoDB Riak Cassandra Memcache CouchDB Redis

外部资源

APIs 文件系统 网络接口 外部流程 糟糕的代码

选择哪一种性能分析器&#;在 PHP 世界里,有两个截然不同的的性能分析器——主动和被动。

主动 VS 被动性能分析主动分析器在开发过程中使用,由开发人员启用。主动分析器收集的信息比被动分析器多,对性能的影响更大。通常,主动分析器不能用在生产环境中。XDebug 就是一种主动分析器。

因为无法在生产环境中使用主动分析器,Facebook 推出了一个被动分析器——XHProf。XHProf 是为了在生产环境中使用而打造的。它对性能的影响最小,同时收集足够的信息用于诊断性能问题。XHProf 和 OneAPM 都是被动分析器。

通常,XDebug 收集的额外信息对于一般的性能问题分析并不必要。这意味着,被动分析器是用于不间断性能分析的更佳选择,即使是在开发环境中。

XHProf + XHGuiXHProf 由 Facebook 开发的,包含一个基本的用户界面用于查看性能数据。此外,Paul Reinheimer 开发了 XHGui 和一个增强的用户界面(UI)用于查看、比较和分析性能数据。

安装安装 XHProfXHProf 可通过 PECL 安装,步骤如下:

该 pecl 命令将尝试自动更新你的 php.ini 设置。pecl 尝试更新的文件可以使用以下命令找到:

它会在指定的文件(如果有的话)顶部增加新的配置行。你可能想把他们移到一个更合适的位置。

一旦你编译了该扩展程序,您必须启用它。为此,您需要在 PHP INI 文件添加以下代码:

之后,结合 XHGui 就能轻松地执行性能分析与检查。

安装 XHGui安装 XHGui,必须直接从 git 获取。该项目可以在 github 上找到,地址为: 要求:

PHP 5.3+ ext/mongo composer MongoDB (若只需要收集数据,则可选可不选;若需要数据分析,则为必选)

首先,克隆项目到任意位置。在基于 Debian 的 Linux 系统(例如 Ubuntu 等等),可能是 /var/www。在 Mac OS X 系统,可能是 /Library/WebServer/Documents。

Linux系统下使用XHProf和XHGui分析PHP运行性能(linux怎样使用)

最后一个命令是运行 composer 以安装依赖并检查 XHGui 缓存目录的权限。如果失败,你可以手动运行 composer install。

下一步,你可能需要创建配置文件。这一步很容易实现,可以使用在 /path/to/XHGui/config/config.default.php 下的默认配置文件。

如果你在本地运行 MongoDB,没有身份验证,则可能不需要这样做。因为它将回退为默认值。而在多服务器环境中,你会需要一个所有服务器都能进行存储的远程 MongoDB 服务器,并进行恰当的配置。

为提高 MongoDB 的性能,你可以运行以下指令以添加索引:

其他配置如果你不想在生产环境中安装 mongo ,或无法让 Web 服务器访问 mongo 服务器,您可以将性能分析数据保存在磁盘中,再导入到本地 MongoDB 供以后分析。

为此,请在 config.php 中进行以下修改:

改变文件中的 save.handler,然后取消批注 save.handler.filename ,为其赋一个恰当的值。

注意:默认每天只保存一个分析文件。

一旦分析数据的准备就绪,你就可以使用 XHGui 附带的脚本导入之:

在此之后的步骤都相同。

运行 XHGuiXHGui 是以 PHP 为基础的 Web 应用程序,你可以以 /path/to/xhgui/webroot 为根文件,设置一个标准的虚拟主机。

或者,你可以简单地使用 PHP 5.4+ cli-server 例如:

这将使 XHGui 在所有网络接口都可通过 端口进行通信。

运行性能分析器运行分析器时,你需要在待分析的所有页面包含 external/header.php 脚本。为此,你可以在 PHP ini 文件设置 auto_prepend_file 。你既可以直接在公共 INI 文件进行设置,也可以限制到单一的虚拟主机。

对于 Apache 服务器,添加以下代码:

对于 Nginx 服务器,在服务器配置中添加以下代码:

如果您使用 PHP 5.4+ cli-server(PHP -S),则必须通过命令行标记进行设置:

默认情况下,分析器运行时只分析(大约) 1% 的请求。这是由以下 external/header.php 代码控制的:

如果你想分析每一个请求(例如,在开发阶段),你可以将这段代码注释掉。如果你想让分析 % 的请求,你可以做如下改动:

这允许你对一小部分用户请求进行分析,而不过多影响单个用户或太多用户。

如果你想在性能分析时进行手动控制,你可以这样做:

这段代码会检查一个随机命名的 GET/POST/COOKIE 变量(在此例中为:A9v3XUsnKX3aEiNsUDZzV),同时创建一个同名的 Cookie ,用于分析该请求的整个过程,例如:表单提交后的重定向,Ajax 请求等等。

此外,它允许一个名为 no-A9v3XUsnKX3aEiNsUDZzV 的 GET/POST 变量来删除 Cookie ,停止分析。

当然,我们欢迎大家尝试使用 OneAPM 来为您的 PHP 和 Java 应用做免费的性能分析。OneAPM 独有的探针能够深入到所有 PHP 和 Java 应用内部完成应用性能管理和监控,包括代码级别性能问题的可见性、性能瓶颈的快速识别与追溯、真实用户体验监控、服务器监控和端到端的应用性能管理。 OneAPM 可以追溯到性能表现差的 SQL 语句 Traces 记录、性能表现差的第三方 API、Web 服务、Cache 等等。

PHP的Yii框架的常用日志操作总结 日志Yii提供了一个高度自定义化和高扩展性的日志框架。根据使用场景的不同,你可以很容易的对各种消息就行记录、过滤、合并,比如说文本文件,

PHP判断手机是IOS还是Android 本文介绍了PHP判断手机是IOS还是Android的三个小实例,要判断用户的手机是安卓的还是ios的,搜了一下相关的资料,最终获得的结果分享给大家。实例1:

学习php设计模式 php实现观察者模式(Observer) 一、意图定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新【GOF】又称为发布-订阅

标签: linux怎样使用

本文链接地址:https://www.jiuchutong.com/biancheng/281557.html 转载请保留说明!

上一篇:详解PHP的Yii框架中日志的相关配置及使用(php yii框架)

下一篇:PHP的Yii框架的常用日志操作总结(php框架的作用)

  • 应交税费转出未交增值税借贷方表示什么
  • 增值税发票综合服务平台红字确认
  • 开发票价格能否比实际金额高
  • 企业所得税属于地方税吗
  • 注销有几种方法
  • 小规模印花税是季报还是月报
  • 员工拓展活动方案范文
  • 固定收益款可以开增值税专票吗?
  • 债转股资金
  • 计提存货减值准备怎么算
  • 印花税按什么征收
  • 预付账款是付没付钱
  • 员工参加公司活动的好处
  • 关联企业无偿使用土地
  • 银行缴纳印花税贷款方面哪些可以减免
  • 实收资本印花税属于什么税目
  • 小规模纳税人已经开了3%的票还可以享受1%的优惠吗
  • 烟草企业发生的广告和宣传费在当年营业收入15
  • 应收账款分录借方负数转到预收账款的哪方
  • 长期待摊未摊完处置如何账务处理
  • 货币性项目和非货币性项目的区别是什么?如何进行处理?
  • 发票已入账未认证怎么办
  • 期末进项税额和销项税额都有余额
  • php数组有哪几种类型
  • 融资租赁ppt
  • 君子兰的养殖方法
  • 此设备某些文件可能存在问题
  • 费用要素是企业对各种费用按经济用途进行的分类
  • 包工队人员受伤该由谁负责
  • 泰姬陵 (© Michele Falzone/plainpicture)
  • 朱顶雀的饲养
  • 支付宝手机网站支付不风控
  • win11硬件加速gpu计划怎么关
  • vue角色管理
  • 一个用于表示特定的web页的标识符url称为
  • 检测命令
  • mkdir 命令
  • 小型微利企业增值税优惠政策2023最新
  • 个人能去税务局开劳务费发票吗
  • 软件服务费可以全额抵扣吗?
  • 收到税控系统技术维护费分录
  • 劳务分包的三种形式
  • 缴纳上月应交未交税费
  • 个人所得税的计算标准
  • mariadb10安装
  • 亏损企业研发费用必须加计扣除吗
  • 三证合一指的是什么意思
  • 房地产企业实际发生的税金及附加
  • 清算中的资产损失
  • 企业银行贷款报表模板
  • 销售返现如何做账务处理
  • 公司账户存定期利息
  • 工地水包水
  • 自己做的房子可以办房产证吗
  • 代扣代缴完税凭证抵扣期限
  • 职工薪酬包括哪四项内容
  • 哪个行业的会计最难
  • sql中cursor是什么意思
  • linux下多个mysql5.7.19(tar.gz)安装图文教程
  • mysql转移表数据表
  • mysql连接数 是针对db还是服务器
  • xp系统怎么取消自动关机
  • 宏基笔记本电脑质量怎么样
  • mac文件权限
  • centos6.5双网卡绑定
  • linux中启动服务命令
  • windows用户注册
  • linux命令怎么用
  • Win7如何关闭Smartscreen筛选器?Win7关闭Smartscreen筛选器的方法
  • linux bash shell
  • 详细介绍8款超跑车
  • 批处理 leq
  • shell脚本 su
  • python给批量图片添加文字
  • javascript定义数组的方法
  • 安卓多点触屏在哪里设置
  • js按下回车键时提交
  • 企业季度申报怎么报
  • 国家税务总局2016年17号公告
  • 税收征管工作的基本目标
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设