设为首页 收藏本站
查看: 1963|回复: 0

lamp+yum+xhprof(性能分析)环境搭建

[复制链接]

尚未签到

发表于 2015-11-15 12:33:55 | 显示全部楼层 |阅读模式
  XHProf是一个分层PHP性能分析工具。它报告函数级别的请求次数和各种指标,包括阻塞时间,CPU时间和内存使用情况。一个函数的开销,可细分成调用者和被调用者的开销,XHProf数据收集阶段,它记录调用次数的追踪和包容性的指标弧在动态callgraph的一个程序。它独有的数据计算的报告/后处理阶段。在数据收集时,XHProfd通过检测循环来处理递归的函数调用,并通过给递归调用中每个深度的调用一个有用的命名来避开死循环。XHProf分析报告有助于理解被执行的代码的结构,它有一个简单的HTML的用户界面(
PHP写成的)。基于浏览器的性能分析用户界面能更容易查看,或是与同行们分享成果。也能绘制调用关系图。
  
  推荐阅读:http://blog.aboutc.net/php/17/php-profiler-xhprof#xhprof_enable_parameters



先配置yum源

内部yum源,一般人不告诉他。

# wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -ivh remi-release-6.rpm
# vim /etc/yum.repos.d/ remi.repo

CORRECT EXAMPLE:

[remi]
name=Les RPM de remi pour Enterprise Linux 6 - $basearch
#baseurl=http://rpms.famillecollet.com/enterprise/6/remi/$basearch/
mirrorlist=http://rpms.famillecollet.com/enterprise/6/remi/mirror
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi



# vim /etc/yum.conf  ,  加入nginx 配置:



CORRECT EXAMPLE:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1







下面进行普通lamp安装及配置



yum install httpd mysql-server php php-devel php-mysql php-mbstring php-mcrypt php-gd

设置开机自动运行服务

chkconfig --level 235 httpd on
chkconfig --level 235 mysqld on



现在运行HTTP和数据库服务

service httpd start
service mysqld start



下面这些都是重要的配置文件或位置

apache的

/etc/httpd/conf/httpd.conf   (注意这里的配置文件路径)

/var/www/html/

/var/www/error/

/var/log/httpd/

初步配置:vi  /etc/httpd/conf/httpd.conf

1、修改 ServerName localhost:80

2、修改 DirectoryIndex 添加几个默认文档如index.htm和index.php

3、修改 AddDefaultCharset GB2312



MySQL的

/etc/my.cnf    (注意这里的配置文件路径)

/var/lib/mysql/ 数据库放置位置





开启MySQL的服务。



方法1、service mysqld start  



方法2、/etc/init.d/mysqld start

测试MYSQL运行是否正常



[iyunv@CentOS-Josen cache]# netstat -tuln | grep ':3306'
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

进入mysql,第一次进入不需要密码,然后设置密码

mysql -u root  然后退出quit
mysqladmin -u root password 'yourpassword'

用刚才设置的密码进入:mysql -u root  -p



PHP的配置文件和测试

/usr/lib/httpd/modules/libphp4.so

/etc/httpd/conf.d/php.conf

/etc/php.ini

/etc/hphp.d/mysql.ini



/usr/lib/php4/mysql.so



vi /var/www/html/info.php
<?php
phpinfo();
?>

下面安装xhprof



yum install php-pecl-xhprof
下载xhprof.tar.gz地址:http://download.iyunv.com/detail/e421083458/7028089
将xhprof.tar.gz 放到/var/www/html
cd /var/www/html
tar -zxvf xhprof.tar.gz
mv facebook-xhprof-ec8b884/ xhprof
chown -R apache:apache /var/www/html/xhprof
chmod -R 775 /var/www/html/xhprof
cd /etc/php.d/
vim xhprof.ini,改成:xhprof.output_dir = /var/www/html/xhprof_html
yum install graphviz
重启apache 或者nginx

开始使用测试代码:

首先找段执行慢的代码,在文件头及文件尾部添加如下代码,注意看看代码部分有没有终止的代码如exit之类的,确保程序执行到最后。



<?php
define('IS_XHPROF_ENABLE', true);
if(IS_XHPROF_ENABLE){
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
xhprof_enable();
}

代码部分...................

write_to_xhprof();
function write_to_xhprof() {
if(IS_XHPROF_ENABLE){
// stop profiler
$xhprof_data = xhprof_disable();
$XHPROF_ROOT = dirname(__FILE__);
include_once $XHPROF_ROOT . &quot;/xhprof_lib/utils/xhprof_lib.php&quot;;
include_once $XHPROF_ROOT . &quot;/xhprof_lib/utils/xhprof_runs.php&quot;;
echo &quot;xhoprof&quot;;
// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();
// save the run under a namespace &quot;xhprof_foo&quot;
$run_id = $xhprof_runs->save_run($xhprof_data, &quot;xhprof_test&quot;);
}
}
?>

拷贝一份/var/www/html/xhprof/xhprof_lib到当前脚本的相同路径中。



查看代码运行状态:



http://192.168.252.128:8080/xhprof/xhprof_html/



你会看到文件列表,如果看不到可能需要打开服务器端的Option Index,如果还没有查一下以上配置。



先点开某个文件,然后再找到[View Full Callgraph],你会看到一张大图,消耗时间的代码通常是黄色跟红色的。



DSC0000.jpg

版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-139495-1-1.html 上篇帖子: ubuntu下安装lamp环境最简单的方法 下篇帖子: ubuntu12.04下编译安装lamp(apache2.2.26 mysql5.5.36 php5.2.17)环境
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表