tideways+xhgui搭建php 7的性能测试环境

  • 时间:2017-11-08
  • 分类:PHP编程
  • 1166 人浏览
[导读]前言我之前使用的是xhprof+xhgui分析线上环境的性能,然而PHP版本升级到PHP 7之后,xhprof已经不可用,于是改用tideways+xhgui,这实际上也是PHP7下开源方案的唯一选择

前言

我之前使用的是xhprof+xhgui分析线上环境的性能,然而PHP版本升级到PHP 7之后,xhprof已经不可用,于是改用tideways+xhgui,这实际上也是PHP7下开源方案的唯一选择,有兴趣的可看下参考资料[2],有详细说明。

本文主要根据参考资料[1]配置,因此会有大量重复的地方,我主要其基础上根据实际生产环境的要求多添加了以下额外配置:

mongodb只绑定到本地xhgui开启HTTP Basic认证xhguimongodb中只保留最近14天的数据 系统环境

CentOS 7.3 + nginx + mysql + php71

本文假设你的lnmp环境已经可以正常使用,并且是通过源码安装PHP,现在只是需要添加性能测试的功能。如果你不熟悉lnmp环境的配置,推荐使用https://lnmp.org/提供的一键安装包,本文的配置路径均基于该包的默认配置。

安装与配置

分成以下几个部分:

    1.mongodb

    安装

    启动mongodb服务

    2.tideways

    项目主页:https://github.com/tideways/php-profiler-extension

    安装

    配置

    编辑php.ini文件,添加:

    重启php-fpm,执行以下命令看到tideways的输出表示有生效:

    3.xhgui

    xhgui也是一个网站,最终需要通过web访问。官方版本是英文版,已经不更新了,有很多BUG,这里推荐使用中文版:https://github.com/maxincai/xhgui

    安装(假设在/home/wwwroot/目录下执行如下命令)

    配置

    1.给数据库添加索引,非必须,但是强烈推荐:

    2.nginx配置(xhgui本身没有安全机制,它捕捉的数据中有敏感数据,因此开放到外网后必须开启HTTP Basic认证)

    创建/usr/local/nginx/conf/vhost/xhgui.conf文件,内容如下:

    开启HTTP Basic认证需要生成密码文件htpasswd。假设生成一个tester用户,密码为123456,则执行以下命令:

    生成后记得检查下文件内容,格式内容应该类似如下:

    完成配置重启,在浏览器中进入http://127.0.0.1:8888,应该能看到界面了,只是此时还没有数据。

    3.进一步优化配置

    xhgui 默认是按1%采集的,可是如果是排查问题时还是希望能够100%采集会比较方便。进入xhgui源码目录,修改config/config.default.php文件,平时仍然按1%的采样率采样,防止数据增长过快,当想调试时,就在URL中添加debug=1的参数即可。

    config/config.default.php中,找到profiler.enable这里,按如下修改:

    如果不删除采集的数据,很快就会发现mongo数据库变得很大。因此推荐配置下mongo数据库,只保留最近14天的数据。

    如果想手动全部删除,则执行如下命令:

    4.应用配置

    让应用实现采集,需要修改对应的nginx配置文件,添加:

    完整的nginx示例配置文件如下:

    最终成功配置并采集到数据的界面

    参考

      来源:本文为线上采编,如涉及作品内容、版权和其它问题,请及时与本网联系,我们将在第一时间删除!