Xhprof安装笔记(PHP性能监控)

Xhprof是facebook开源出来的一个PHP性能监控工具,占用资源很少,甚至能够在生产环境中进行部署。
它可以结合graphviz使用,能够以图片的形式很直观的展示代码执行耗时

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz
cd xhprof-0.9.4/extension/
/usr/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

# 编辑php.ini:
[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp

重启服务     service php-fpm restart        

# 测试下
<?php
function my_dump($str) {
 print $str;
}

xhprof_enable();        // start profiling
my_dump(‘Funsion Wu‘);    // run program
$xhprof_data = xhprof_disable();    // stop profiler
print_r($xhprof_data);    // display raw xhprof data for the profiler run
?>

# 最后返回数组,就表示安装好了。具体哪些值是什么意思先别管,因为下面有UI的配置。会很直观!
yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch 

自动安装 yum install -y graphviz

手动安装:
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
tar zxf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make && make install

安装完成后,会生成 /usr/local/bin/dot 文件,你应该确保路径在PATH环境变量里,以便XHProf能找到它。

vi /root/.bashrc
export PATH="$PATH:/usr/local/bin/dot"
为Xhprof配置一个访问站点(虚拟主机)

比如做一个虚拟域名 dev.xhprof.com
绑定到xhprof的站点根目录 /usr/local/xhprof-0.9.2/xhprof_html

# 找到你要分析的代码,在代码开始处添加
xhprof_enable();    // start profiling

# 在代码结束位置添加
$xhprof_data = xhprof_disable();        // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php");    # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_runs.php");
$xhprof_runs = new \XHProfRuns_Default();
// Save the run under a namespace "xhprof_foo".
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");
$str = "\r\n------------------\r\n".
    "Assuming you have set up the http based UI for \r\n".
    "XHProf at some address, you can view run at \r\n".
    "http://dev.xhprof.com/index.php?run=$run_id&source=xhprof_foo".
    "\r\n------------------\r\n";
echo nl2br($str);

然后进入程序输出的网址(比如 http://dev.xhprof.com/index.php?run=52c0ea0bef834&source=xhprof_foo ),进行查看
下面是一些参数说明
Inclusive Time                 包括子函数所有执行时间。
Exclusive Time/Self Time  函数执行本身花费的时间,不包括子树执行时间。
Wall Time                        花去了的时间或挂钟时间。
CPU Time                        用户耗的时间+内核耗的时间
Inclusive CPU                  包括子函数一起所占用的CPU
Exclusive CPU                  函数自身所占用的CPU
点击 [View Full Callgraph] 能够以图文的形式查看,很方便

注意: 需要使用ctype这个扩展,Callgraph图片生成依赖一些PHP系统级的函数,所以,最好去掉 php.ini 中的函数禁用
时间: 2024-10-22 03:29:30

Xhprof安装笔记(PHP性能监控)的相关文章

深入理解Java虚拟机之读书笔记四 性能监控与故障处理工具

JDK的bin目录下存在很多有效的命令行工具,它们就是jdk\lib\toos.jar类库的封装. 一.jps:虚拟机进程状况工具,查询出LVMID. 二.jstat:虚拟机统计信息监视工具, 三.jinfo:Java配置信息工具 实时地查看和调整虚拟机的各项参数. 四.jmap:Java内存映像工具:生成堆转储快照 不仅可以获取dump文件,可以查询finalize执行队列,java堆和永久代的详细信息,空空间使用率.当前的收集器等. 五.jhat:虚拟机堆转储快照分析工具 六.jstack:

PHP性能优化工具–xhprof安装

PHP性能优化工具–xhprof安装,这里我先贴出大致的步骤: 1.获取xhprof 2.编译前预处理 3.编译安装 4.配置php.ini 5.查看运行结果 那么下面我们开始安装xhprof工具吧: 1.获取xhprof 可以输入网址直接下载,或者wget 1 2 3 4 #wget http://pecl.php.net/get/xhprof-0.9.4.tgz #tar zxf xhprof-0.9.4.tgz 2.编译前预处理 在编译xhprof之前,先做一下预处理,生成configur

JAVA程序员养成计划之JVM学习笔记(3)-JVM性能监控

本文对JVM的性能监控方法做整理. 持续更新中- - 1. JDK命令行工具 1.1. jps:虚拟机进程状况工具 JVM Process Status Tool, 显示系统内所有的HotSpot虚拟机进程,用于查看当前在jvm中运行的程序,包括虚拟机执行主类的名称以及进程ID. 1.2. jstat:虚拟机统计信息监视工具 JVM Statistics Monitoring Tool, 用于收集Hotspot虚拟机各方面的运行数据,包括类装载.内存.垃圾收集.JIT编译等运行数据. 1.3.

【干货】Mysql的&quot;事件探查器&quot;-之Mysql-Proxy代理实战一(安装部署与实战sql拦截与性能监控)

1:资料参考 https://blog.csdn.net/coldljy/article/details/3168906 https://www.cnblogs.com/jwentest/p/8552075.html https://www.cnblogs.com/ExMan/p/10396298.html 一:原理 Mysql-Proxy是一个处于你的client端和Mysql Server端之间的一个简单程序,它可以监测.分析和改变他们的通信.它使用灵活没有限制,常见的用途包括:负载平衡,故

windows 性能监控

标 题: windows 性能监控之VC编译snmp作 者: itdef链 接: http://www.cnblogs.com/itdef/p/4003599.html 欢迎转帖 请保持文本完整并注明出处 windows性能监控可以使用如下几种方法: 一.自己C++调用APi .获取诸如 1.进程的空闲及计算时间对比计算CPU占用率 2.磁盘空闲率 3.遍历进程各种信息 4注册表查询安装软件等.这个之前在 <ProcessHacker学习笔记> http://www.cnblogs.com/i

虚拟机性能监控与故障排查工具介绍

本文来读书籍<深入理解java虚拟机-JVM高级特性与最佳实践>的阅读笔记,并且对虚拟机性能监控与故障排查一节做了内容整理. 关于导图中的两部分内容还是希望大家能够亲自测试体验下,在网上也有不少的文章介绍,这里摘录几篇个人认为不错的文章,供参考: jstat/jinfo/jstack/jmap命令行工具使用详细介绍 VisualVM 官网介绍及使用说明 使用 VisualVM 进行性能分析及调优 使用VisualVm监控远程Linux服务器java进程 由于在 linux 服务器上面,使用远程

老李分享:《Java Performance》笔记1——性能分析基础 1

老李分享:<Java Performance>笔记1——性能分析基础 1.性能分析两种方法: (1).自顶向下: 应用开发人员通过着眼于软件栈顶层的应用,从上往下寻找性能优化的机会. (2).自底向上: 性能专家从软件栈底层的CPU统计数据(例如CPU高速缓存未命中率.CPU指令效率)开始,逐渐上升到应用自身的结构或应用常见的使用方式. 2.CPU使用率: 大多数操作系统的CPU使用率分为用户态CPU使用率和系统态CPU使用率. 用户态CPU使用率:执行应用程序代码的时间占总CPU时间的百分比

对SQLSERVER进行性能监控

对SQLSERVER进行性能监控 在上一篇文章<SQLSERVER性能监控级别步骤>里说到性能监控的步骤中有一步涉及到建立性能基线,但是没有说到有哪些计数器 可以用来进行监控的,这篇文章结合<企业级平台管理实践>的书本说一下监控SQLSERVER有哪些计数器可以用到的 3.建立性能基线    当确定了性能监控中所涉及的资源.负载和目标后,开始进行监控,并建立性能基线与当前服务器性能进行比较.   性能基线是一个保证系统正常操作性能范围值,达到或超过这个范围,系统性能可能会显著下降.

vmstat和iostat命令进行Linux性能监控

这是我们正在进行的Linux命令和性能监控系列的一部分.vmstat和iostat两个命令都适用于所有主要的类unix系统(Linux/unix/FreeBSD/Solaris). 如果vmstat和iostat命令在你的系统中不可用,请安装sysstat软件包.vmstat,sar和iostat命令都包含在sysstat(系统监控工具)软件包中.iostat命令生成CPU和所有设备的统计信息.你可以从这个连接中下载源代码包编译安装sysstat,但是我们建议通过YUM命令进行安装. 在Linu