ApacheBench(ab)和eAccelerator使用配置
ApacheBench(ab)
服务器负载太大而影响程序效率也是很常见的,Apache服务器自带有一个叫AB(ApacheBench)的工具,在bin目录下。使用这个轻巧的工具我们可以对服务器进行负载测试,
基本用法:
ab -n 全部请求数 -c 并发数 测试url
例:ab -n 1000 -c 50 http://www.abc.com/a.php
得到结果类似于(后面颜色字为中文翻译):
Server Software: Apache/2.0.55
Server Hostname: localhost
Server Port: 80
Document Path: /1.php
Document Length: 82522 bytes #请求文档大小
Concurrency Level: 50 #并发数
Time taken for tests: 92.76140 seconds #全部请求完成耗时
Complete requests: 10000 #全部请求数
Failed requests: 1974 #失败的请求
(Connect: 0, Length: 1974, Exceptions: 0)
Write errors: 0
Total transferred: 827019400 bytes #总传输大小
HTML transferred: 825219400 bytes
Requests per second: 108.61 [#/sec] (mean) #每秒请求数(平均)
Time per request: 460.381 [ms] (mean) #每次并发请求时间(所有并发)
Time per request: 9.208 [ms] (mean, across all concurrent requests) #每一请求时间(并发平均)
Transfer rate: 8771.39 [Kbytes/sec] received #传输速率
Connection Times (ms) #连接时间
min mean[+/-sd] median max
Connect(#连接): 0 0 2.1 0 46
Processing(#处理): 31 458 94.7 438 1078
Waiting(#等待): 15 437 87.5 422 938
Total: 31 458 94.7 438 1078
其它参数:
-n requests 全部请求数
-c concurrency 并发数
-t timelimit 最传等待回应时间
-p postfile POST数据文件
-T content-type POST Content-type
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute 加入cookie, eg. 'Apache=1234. (repeatable)
-H attribute 加入http头, eg. 'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute http验证,分隔传递用户名及密码
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port 代理服务器
-V 查看ab版本
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)
About eAccelerator
eAccelerator是一个的免费、开源的PHP模块,它能够为提供PHP加速、优化、加码、和动态内容缓存功能。它通过存储PH脚本编译后的状态而加快执行PHP脚本的速度,而不需要频繁的编译这个PHP脚本。而且它能优化PHP脚本,以提高执行PHP的速度。eAccelerator特色是减少了 服务器负载、使PHP脚本加速1-10倍。
对应你的php版本下载相应的dll文件.如果是PHP 5.2.5请下载 eAccelerator 0952 for PHP 5.2.5 eLoader 0952 for PHP 5.2.5
Attachment | Size |
eAccelerator 095 Final for PHP 5.1.6 | 120 KB |
095_final_useful _files.zip | 41.97 KB |
eAccelerator 0.9.5 Final for PHP 5.1.5 | 120 KB |
eAccelerator 095 Final for PHP 5.1.6 Optimized for Size | 108 KB |
eAccelerator 095 Final for PHP 5.2.0 | 120 KB |
eAccelerator 095 Final for PHP 5.0.5 | 120 KB |
eAccelerator 095 for PHP 5.0.4 (OLDER PHP VERSION) | 120 KB |
eAccelerator 0951 for PHP 5.2.2 | 120 KB |
eAccelerator 0951 for PHP 5.2.1 | 120 KB |
eAccelerator 0951 for PHP 5.2.2 Built with VC2005 SP1 | 128 KB |
eAccelerator 0951 for PHP 5.1.4 | 120 KB |
eAccelerator 0951 for PHP 5.2.3 | 120 KB |
eAccelerator 0951 for PHP 5.2.0 (OLDER PHP VERSION) | 120 KB |
eAccelerator 0951 for PHP 5.2.4 | 120 KB |
eLoader 0951 for PHP 5.2.4 | 28 KB |
0952_final_useful _files.zip | 42.27 KB |
eLoader 0952 for PHP 5.2.3 | 28 KB |
eAccelerator 0952 for PHP 5.2.3 | 120 KB |
eLoader0952_5.2.4.dll | 28 KB |
eAccelerator 0952 for PHP 5.2.4 | 120 KB |
eAccelerator 0952 for PHP 5.2.5 | 120 KB |
eLoader 0952 for PHP 5.2.5 | 28 KB |
We have been using this PHP accelerator (0.9.5), on multiple servers, for a long time. It's used on some high traffic sites without any problem.
Install:
a) Download a copy of eAccelerator that is compatible with your version of PHP.
This can be an issue with eAccelerator. Sometimes it can take a little time before the Windows binaries are available for the most recent version of PHP.
b) Copy a compatible eaccelerator.dll to your PHP extensions folder (like:D:\php\ext replace with your actual folder location).
Make sure the configuration directive extension_dir in your php.ini is properly pointing to your extensions folder.
Like: extension_dir = "D:/php/ext"
//将dll文件复制到D:/php/ext下.
c) Create a folder (with the appropriate permissions) for the temporary cached files.
For example: D:\temp\eaccelerator
//创建tmp目录 权限可写
d) Add the following to your php.ini (as the first loaded extension):
.
;extension=php_yaz.dll
;extension=php_zip.dll
//编辑php.ini 在extension=php_zip.dll之后添以红字部分
[eaccelerator]
zend_extension_ts="D:\php\ext\eAccelerator0952_5.2.3.dll"
zend_extension="D:\php\ext\eAccelerator0952_5.2.3.dll"
eaccelerator.cache_dir = "D:\temp\eaccelerator"
eaccelerator.shm_size="64"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.debug ="0"
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl ="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys= "shm"
eaccelerator.sessions="shm"
eaccelerator.c
zend_extension="D:\php\ext\eLoader0952_5.2.3.dll"
;;;;;;;;;;;;;;;;;;;
; Module Settings ;
;;;;;;;;;;;;;;;;;;;
.
.
e) Restart your Web Server.You can see..