PHP性能分析工具XHProf
[ 2010/01/26 16:49 | by selboo ]
XHProf是facebook开源出来的一个php轻量级的性能分析工具,跟Xdebug类似,但性能开销更低,还可以用在生产环境中,也可以由程序开 关来控制是否进行profile。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。在数据收集阶段,它记录调用次 数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递 归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。
XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。
一、编译安装XHProf
[root@localhost src]# wget http://pecl.php.net/get/xhprof-0.9.2.tgz
[root@localhost src]# tar zxf xhprof-0.9.2.tgz
[root@localhost src]# cd xhprof-0.9.2
[root@localhost xhprof-0.9.2]# cp -r xhprof_html xhprof_lib /var/www/html/
[root@localhost xhprof-0.9.2]# cd extension/
[root@localhost extension]# /usr/local/webserver/php/bin/phpize
[root@localhost extension]# ./configure –with-php-config=/usr/local/webserver/php/bin/php-config
二、配置 php.ini 文件
vi vi /usr/local/webserver/php/etc/php.ini 修改php.ini
OK 重启WEB服务器。为了更加清晰显示程序执行、调用结构,安装Graphviz。
三、安装Graphviz:
[root@localhost src]# wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
[root@localhost src]# tar zxf graphviz-2.24.0.tar.gz
[root@localhost graphviz-2.24.0]# cd graphviz-2.24.0
[root@localhost graphviz-2.24.0]# ./configure
[root@localhost graphviz-2.24.0]# make
[root@localhost graphviz-2.24.0# make install
四、应用XHProf
客户端能很灵活地保存他们从XHProf运行中得到的XHProf原始数据。用户界面层的XHProf提供了一个 iXHProfRuns接口(见xhprof_lib/utils/xhprof_runs.php ),客户端可以利用。这使得客户端能够告诉用户界面层,如何获取XHProf运行后产生的对应数据。
XHProf的UI 库自带的有一个基于文件的iXHProfRUns接口实现,即“ XHProfRuns_Default”(见xhprof_lib/utils/xhprof_runs.php)。这个自带的实现将XHProf运行结 果存在ini配置的xhprof.output_dir参数指定的某个目录下。
一次XHProf运行,必须用一个命名空间和运行编号来唯一确定。
假设使用iXHProfRuns接口的XHProfRuns_Default这个默认实现方式,如:
//xhprofStart.php 文件
//xhprofEnd.php 文件
程序中应用:
将profile开关程序放在你所要进行分析的程序部分,就会将运行结果保存在xhprof.output_dir ini参数指定的特定目录下。文件的名称可能会是23dffaa3a3f66.xhprof_foo类似的文件; 两部分分别是运行编号(23dffaa3a3f6)和命名空间(xhprof_foo)。
最后,一些术语解释:
1. Inclusive Time (或子树时间):包括子函数所有执行时间。
2. Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
3. Wall时间:花去了的时间或挂钟时间。
4. CPU时间:用户耗的时间+内核耗的时间
更多:http://mirror.facebook.net/facebook/xhprof/doc.html
XHProf的轻量级性质和汇聚功能,使得它非常适合用于收集“生产环境”的性能统计数据的统计。
一、编译安装XHProf
[root@localhost src]# wget http://pecl.php.net/get/xhprof-0.9.2.tgz
[root@localhost src]# tar zxf xhprof-0.9.2.tgz
[root@localhost src]# cd xhprof-0.9.2
[root@localhost xhprof-0.9.2]# cp -r xhprof_html xhprof_lib /var/www/html/
[root@localhost xhprof-0.9.2]# cd extension/
[root@localhost extension]# /usr/local/webserver/php/bin/phpize
[root@localhost extension]# ./configure –with-php-config=/usr/local/webserver/php/bin/php-config
二、配置 php.ini 文件
vi vi /usr/local/webserver/php/etc/php.ini 修改php.ini
[xhprof]
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
xhprof.output_dir=<directory_for_storing_xhprof_runs>
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
;
xhprof.output_dir=<directory_for_storing_xhprof_runs>
OK 重启WEB服务器。为了更加清晰显示程序执行、调用结构,安装Graphviz。
三、安装Graphviz:
[root@localhost src]# wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
[root@localhost src]# tar zxf graphviz-2.24.0.tar.gz
[root@localhost graphviz-2.24.0]# cd graphviz-2.24.0
[root@localhost graphviz-2.24.0]# ./configure
[root@localhost graphviz-2.24.0]# make
[root@localhost graphviz-2.24.0# make install
四、应用XHProf
客户端能很灵活地保存他们从XHProf运行中得到的XHProf原始数据。用户界面层的XHProf提供了一个 iXHProfRuns接口(见xhprof_lib/utils/xhprof_runs.php ),客户端可以利用。这使得客户端能够告诉用户界面层,如何获取XHProf运行后产生的对应数据。
XHProf的UI 库自带的有一个基于文件的iXHProfRUns接口实现,即“ XHProfRuns_Default”(见xhprof_lib/utils/xhprof_runs.php)。这个自带的实现将XHProf运行结 果存在ini配置的xhprof.output_dir参数指定的某个目录下。
一次XHProf运行,必须用一个命名空间和运行编号来唯一确定。
假设使用iXHProfRuns接口的XHProfRuns_Default这个默认实现方式,如:
//xhprofStart.php 文件
<?php
$XHPROF_DEBUG = FALSE;
$debugUserIDArray = array(
123456 => 1,
456152 => 1,
);
if (function_exists('xhprof_enable') && !empty($debugUserIDArray[$winduid]))
{
$XHPROF_DEBUG = TRUE;
}
if ($XHPROF_DEBUG)
{
include_once “/var/www/html/xhprof_lib/utils/xhprof_lib.php”;
include_once “/var/www/html/xhprof_lib/utils/xhprof_runs.php”;
xhprof_enable(); //start profiling
}
?>
$XHPROF_DEBUG = FALSE;
$debugUserIDArray = array(
123456 => 1,
456152 => 1,
);
if (function_exists('xhprof_enable') && !empty($debugUserIDArray[$winduid]))
{
$XHPROF_DEBUG = TRUE;
}
if ($XHPROF_DEBUG)
{
include_once “/var/www/html/xhprof_lib/utils/xhprof_lib.php”;
include_once “/var/www/html/xhprof_lib/utils/xhprof_runs.php”;
xhprof_enable(); //start profiling
}
?>
//xhprofEnd.php 文件
<?php
if (TRUE == $XHPROF_DEBUG)
{
//stop profiler
$xhprof_data = xhprof_disable();
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, “xhprof_foo”);
echo “—————\n”.
“<a href=’/xhprof_html/index.php?run=$run_id&source=xhprof_foo’>xhprof</a>\n”.
“—————\n”;
}
echo ‘<!– xhprof –>’;
?>
if (TRUE == $XHPROF_DEBUG)
{
//stop profiler
$xhprof_data = xhprof_disable();
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, “xhprof_foo”);
echo “—————\n”.
“<a href=’/xhprof_html/index.php?run=$run_id&source=xhprof_foo’>xhprof</a>\n”.
“—————\n”;
}
echo ‘<!– xhprof –>’;
?>
程序中应用:
include /var/www/html/xhprofStart.php
// run program
….
include /var/www/html/xhprofEnd.php
// run program
….
include /var/www/html/xhprofEnd.php
将profile开关程序放在你所要进行分析的程序部分,就会将运行结果保存在xhprof.output_dir ini参数指定的特定目录下。文件的名称可能会是23dffaa3a3f66.xhprof_foo类似的文件; 两部分分别是运行编号(23dffaa3a3f6)和命名空间(xhprof_foo)。
最后,一些术语解释:
1. Inclusive Time (或子树时间):包括子函数所有执行时间。
2. Exclusive Time/Self Time:函数执行本身花费的时间,不包括子树执行时间。
3. Wall时间:花去了的时间或挂钟时间。
4. CPU时间:用户耗的时间+内核耗的时间
更多:http://mirror.facebook.net/facebook/xhprof/doc.html
开源分布式文件系统&文件系统
[ 2010/01/26 15:11 | by selboo ]
GFS(Google File System):
http://www.codechina.org/doc/google/gfs-paper/
MogileFS:
http://www.danga.com/mogilefs
Hadoop/HDFS:
http://hadoop.apache.org/core
KFS(Kosmos Distributed File System):
http://kosmosfs.sourceforge.net
NDFS(Nutch Distributed File System):
http://lucene.apache.org/nutch/
http://wiki.apache.org/nutch/NutchDistributedFileSystem
Gluster(Gluster File System):
http://www.gluster.org
Coda(Coda File System):
http://www.coda.cs.cmu.edu/
Global(Red Hat Global File System Redhat并购):
http://www.redhat.com/gfs
Lustre(Lustre File System Sun并购):
http://www.lustre.org
PVFS(Parallel Virtual File System,非开源):
http://www.parl.clemson.edu/pvfs
GPFS(IBM General Parallel File System, 非开源):
http://www-03.ibm.com/systems/clusters/software/gpfs
OpenAFS(Open Andrew File System IBM):
http://www.openafs.org
XFS(SGI, 不算分布式文件系统):
http://oss.sgi.com/projects/xfs
MOSIX:
http://www.mosix.org
还有一个国内牛人写的FastDFS一个高效的分布式文件系统
http://code.google.com/p/fastdfs/
http://www.codechina.org/doc/google/gfs-paper/
MogileFS:
http://www.danga.com/mogilefs
Hadoop/HDFS:
http://hadoop.apache.org/core
KFS(Kosmos Distributed File System):
http://kosmosfs.sourceforge.net
NDFS(Nutch Distributed File System):
http://lucene.apache.org/nutch/
http://wiki.apache.org/nutch/NutchDistributedFileSystem
Gluster(Gluster File System):
http://www.gluster.org
Coda(Coda File System):
http://www.coda.cs.cmu.edu/
Global(Red Hat Global File System Redhat并购):
http://www.redhat.com/gfs
Lustre(Lustre File System Sun并购):
http://www.lustre.org
PVFS(Parallel Virtual File System,非开源):
http://www.parl.clemson.edu/pvfs
GPFS(IBM General Parallel File System, 非开源):
http://www-03.ibm.com/systems/clusters/software/gpfs
OpenAFS(Open Andrew File System IBM):
http://www.openafs.org
XFS(SGI, 不算分布式文件系统):
http://oss.sgi.com/projects/xfs
MOSIX:
http://www.mosix.org
还有一个国内牛人写的FastDFS一个高效的分布式文件系统
http://code.google.com/p/fastdfs/
搜狐开源镜像网站上线
[ 2009/09/26 12:31 | by selboo ]
继网易在今年二月启动开源项目镜像之后,现在国内的另一家门户网站搜狐也上线了开源镜像站。浏览该站点,其中镜像的项目包括 Arch Linux、CentOS、Debian、Fedora、Gentoo、Ubuntu 等 Linux 发行版,同时也包括 FreeBSD、OpenBSD 等 BSD 版本。
搜狐开源镜像站的地址位于:
http://mirrors.sohu.com
页底红色的"Coming soon“字样提示目前尚未同步完毕,各位仍需稍作等待方能投入使用。
搜狐开源镜像站的地址位于:
http://mirrors.sohu.com
页底红色的"Coming soon“字样提示目前尚未同步完毕,各位仍需稍作等待方能投入使用。
网易开通开源软件镜象站点
[ 2009/02/05 19:55 | by selboo ]
网易悄悄上线了一个开源镜象网站,域名是 http://mirrors.163.com/。目前提供了 Debian、Ubuntu、Fedora、Gentoo、Centos、FreeBSD等流行开源操作系统以及Eclipse等开源软件的镜象。国内终于又个高速的镜像点了。
Index of /
--------------------------------------------------------------------------------
../
FreeBSD/ 04-Jan-2009 09:58 -
OpenBSD/ 15-May-2008 11:09 -
RedHat/ 03-Jul-2008 17:50 -
centos/ 07-Nov-2008 21:15 -
debian/ 05-Feb-2009 03:28 -
debian-backport/ 05-Feb-2009 02:30 -
debian-cd/ 04-Dec-2008 02:07 -
debian-security/ 05-Feb-2009 19:20 -
eclipse/ 07-Nov-2008 23:12 -
fedora/ 08-Dec-2008 15:53 -
firewall/ 12-Sep-2008 23:14 -
gentoo/ 05-Feb-2009 02:50 -
openfiler/ 30-Apr-2008 21:07 -
trixbox/ 07-Dec-2008 20:24 -
ubuntu/ 05-Feb-2009 02:33 -
ubuntu-cd/ 04-Dec-2008 02:00 -
ubuntu-cn/ 05-Feb-2009 02:10 -
HEADER.txt 04-Feb-2009 18:34 209
robots.txt 03-Sep-2008 12:25 26
sources.list.etch 05-Feb-2009 14:01 451
sources.list.hardy 05-Feb-2009 14:02 864
--------------------------------------------------------------------------------
Index of /
--------------------------------------------------------------------------------
../
FreeBSD/ 04-Jan-2009 09:58 -
OpenBSD/ 15-May-2008 11:09 -
RedHat/ 03-Jul-2008 17:50 -
centos/ 07-Nov-2008 21:15 -
debian/ 05-Feb-2009 03:28 -
debian-backport/ 05-Feb-2009 02:30 -
debian-cd/ 04-Dec-2008 02:07 -
debian-security/ 05-Feb-2009 19:20 -
eclipse/ 07-Nov-2008 23:12 -
fedora/ 08-Dec-2008 15:53 -
firewall/ 12-Sep-2008 23:14 -
gentoo/ 05-Feb-2009 02:50 -
openfiler/ 30-Apr-2008 21:07 -
trixbox/ 07-Dec-2008 20:24 -
ubuntu/ 05-Feb-2009 02:33 -
ubuntu-cd/ 04-Dec-2008 02:00 -
ubuntu-cn/ 05-Feb-2009 02:10 -
HEADER.txt 04-Feb-2009 18:34 209
robots.txt 03-Sep-2008 12:25 26
sources.list.etch 05-Feb-2009 14:01 451
sources.list.hardy 05-Feb-2009 14:02 864
--------------------------------------------------------------------------------