文章存档

php添加imagick扩展


wget http://pecl.php.net/get/imagick-3.3.0RC2.tgz
tar zxvf imagick-3.3.0RC2.tgz;cd imagick-3.3.0RC2.tgz;
phpize
yum install ImageMagick
./configure --with-php-config=/usr/local/php/bin/php-config
make test
make
make install
make test

=====================================================================
TIME END 2015-10-14 16:30:07

=====================================================================
TEST RESULT SUMMARY
———————————————————————
Exts skipped : 0
Exts tested : 47
———————————————————————

Number of tests : 27 27
Tests skipped : 0 ( 0.0%) ——–
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 0 ( 0.0%) ( 0.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 27 (100.0%) (100.0%)
———————————————————————
Time taken : 3 seconds
=====================================================================

make

[root@aoxiang imagick-3.3.0RC2]# make
Build complete.
Don’t forget to run ‘make test’.

make install

[root@aoxiang imagick-3.3.0RC2]# make install
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
Installing header files: /usr/local/php/include/php/

安装完成,配置下php.ini

vim /usr/local/php/etc/php.ini
#添加一下内容
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/imagick.so
#保存退出
service php-fpm restart

添加imagick扩展之后,重启php-fpm,查看phpinfo多出了imagick

PHP开启Opcache性能对比

前阵子在群里,看到大庆提到opcache加速器,当时也不明白是什么,于是抽空研究了一下。发现php官方手册真的非常非常非常有必要通读一遍!!!!
opcache是zend出的一个缓存工具,先将php脚本预编译,缓存到内存中,需要用的时候就不用再次编译了。在php5.5的版本以后,php都内置了opcache。正好vps装的是5.4的,于是闲来无事安装下测试看看。
安装非常简单,一句即可

pecl install ZendOpcache

安装完成后会在php.ini中看到多了opcache

php.ini中的opcache

php.ini中的opcache

图中因为我在测试对比开启opcache前后的性能情况,我是注释了opcache。
注意一定要把opcache.so的位置写正确
添加一些配置内容

 opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1

重启php后,我们在phpinfo中能看到多了opcache
前面介绍过xhprof的安装与使用,正好可以用xhprof测试下开启前后情况。仍然是以博客首页为测试对象。测试结果如下:

opcache开启前响应时间对比(单位:毫秒)
响应时间 开启前 开启后
659,185 407,844
516,839 325,101
585,206 450,047
483,782 445,568
518,558 425,767
851,166 359,448
495,277 349,735
561,613 471,427
600,126 644,085
平均值 585750.2222 431002.4444

 

明显开启后速度是有提高的。

Over~

Centos下http_load做压力测试

前阵子做了个小项目,很小很小的那种,但是这家公司确实很有钱很有钱的那种,赞助了某地方卫视黄金档综艺节目,于是乎,节目首播,客户担心服务器扛不住,于是乎有了我这种菜鸟试着玩一下压力测试。

安装很简单
可以到这里下载http_load http://www.acme.com/software/http_load/

mkdir http_load
cd http_load
wget http://www.acme.com/software/http_load/http_load-14aug2014.tar.gz
tar zxvf http_load-14aug2014.tar.gz
cd http_load-14aug2014
make
make install
vim urllist.txt#输入要做压力测试的url地址保存即可

这样就安装好了
下面要进行测试
也非常简单

-r 每秒访问多少次
-s 访问时长
-f 访问总次数

http_load -r 10 -s 10 urllist.txt 

下面看结果

每秒访问10次,共访问10秒,总计100次请求
[root@aoxiang http_load-14aug2014]# http_load -r 10 -s 10 urllist.txt
42 fetches, 58 max parallel, 1.94275e+06 bytes, in 10.0012 seconds
46256 mean bytes/connection
4.19951 fetches/sec, 194253 bytes/sec
msecs/connect: 1.88881 mean, 11.376 max, 1.164 min
msecs/first-response: 3268.35 mean, 5607.34 max, 534.501 min
HTTP response codes:
code 200 — 42

42 fetches, 58 max parallel, 1.94275e+06 bytes, in 10.0012 seconds
进行了42次请求,最大并发进程数58,总计传输 1.94275e+06 bytes,耗时10秒

46256 mean bytes/connection
每次请求平均传输数据量46256 bytes

4.19951 fetches/sec, 194253 bytes/sec
意味着系统最大每秒钟处理4.1次请求,每秒钟传输194253 bytes数据

msecs/connect: 1.88881 mean, 11.376 max, 1.164 min
平均响应时间1.8秒,最大响应时间 11.376msecs,最小响应时间1.164msecs

更详细的信息,可以参考百度百科《http_load》

安装Xhprof测试性能

额,经人提醒才发现原来SAE在4月份已经取消了每个月对开发者赠送的10000个云豆,导致我一直将博客挂在sae上一个月消耗1000个豆子,现在只剩下4000多。⊙﹏⊙于是昨晚赶紧把博客搬家到VPS上,以后再折腾起来就得先备份了。
前阵子玩了一下Xhprof来试着测试下陈旭的性能,今天来做个记录,顺便待会儿再写一篇关于《PHP开启Opcache性能对比》的。正好可以相互验证。
开始安装

mkdir xhprof;cd xhprof#新建一个目录,下载xhprof并进行安装
wget http://pecl.php.net/get/xhprof-0.9.2.tgz #下载
tar zxvf xhprof-0.9.2.tgz
cd xhprof-0.9.2

在web目录中新建一个目录,存放xhprof的一些类等各种文件
移动xhprof_html、xhprof_lib这两个文件夹到web目录的xhprof目录,
lib是用来被程序调用的library,html是用来显示测试结果的一些前端内容

mkdir /home/wwwroot/xhprof
mv xhprof_html xhprof_lib /home/wwwroot/xhprof

在php.ini中开启disable_functions、exec、system、poct_open这几个函数
进入extension这个目录来进行安装php扩展,
一定要进入这个目录,
一定要进入这个目录,
一定要进入这个目录
一定要在有相关扩展包的文件夹中运行phize,否则会报错,报错内容
php的安装位置不一样时,这里的代码也不一样,我的是安装在/usr/local/php中。

cd extension
/usr/local/php/bin/phpize

开始安装,要注意php的安装位置不一样时,得修改下面的命令

./configure --with-php-config=/usr/local/php/bin/php-config
make
make install

到这里,正常情况下,就安装完了!!!
但是,我的一直在报错,我用make test命令测试make,一直报错。
比如,未开启proc_open()、system()等等函数,这些都好解决,
但是有一条call_user_func()这个一直过不去,make test会在最后有错误的情况下,提示你直接给php.net发邮件,于是我发了几条。

后来没自己编译了。直接用pecl安装,pecl安装其实最简单了。

pecl install xhprof-0.9.2
#成功后会有下面提示
#Build process completed successfully
#Installing ''

一条命令搞定,值得注意的是,
pecl命令会在php.ini中自动加上
extension=xhprof.so
但是我们安装后下载的xhprof.so不一定在存放扩展的目录,比如我的就存放在

/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/
所以我们需要移动xhprof至存放扩展的目录,或者修改php.ini
vim php.ini
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/xhprof.so

xhprof提供图形查看运行情况,
我们可能要再安装一下一个绘图工具

yum install -y graphviz

开始测试
前面已经说过,要吧xhprof_html、xhprof_lib放到web目录中,
下面在php中加入测试代码
我的博客用的是wordpress
我就直接在入口文件index.php开头结尾加入测代码就行了

xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

$xhprof_data = xhprof_disable();

$XHPROF_ROOT = "./xhprof";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_testing");
echo "<a href='http://aoxiang.me/xhprof/xhprof_html/index.php?run={$run_id}&source=xhprof_testing'>View Xhprof</a>";

打开首页,会有个链接,用来查看测试结果
有兴趣的可以直接看我现在的测试结果
http://aoxiang.me/xhprof/xhprof_html/index.php?run=561c6fa385c83&source=xhprof_testing

Over~