快速业务通道

为PHP应用提速、提速、再提速!第1部分

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22
oncurrency Level:   1
Time taken for tests:  14.597 seconds
Complete requests:   100000
Failed requests:    98262
  (Connect: 49131, Length: 49131, Exceptions: 0)
Broken pipe errors:   0
Non-2xx responses:   50869
Total transferred:   25739714 bytes
HTML transferred:    12005084 bytes
Requests per second:  6850.72 [#/sec] (mean)
Time per request:    0.15 [ms] (mean)
Time per request:    0.15 [ms] (mean, across all concurrent requests)
Transfer rate:     1763.36 [Kbytes/sec] received

有用的统计信息包括每秒的请求数和完成所有测试的总时间。对于前者,值越大越好;对于后者,值越小越好。

现在,在 php.ini 文件中禁用 XCache,然后再一次运行性能检测,如清单 8 所示。可以注释掉对 XCache 扩展的引用,或者关闭所有的 XCache 特性。再次运行性能检测之前,需重启 Apache。

清单 8. 禁用 XCache 时的 phpMyAdmin 性能检测

$ sudo apachectl restart
$ ab -n 100000 http://localhost/phpmyadmin
Concurrency Level:   1
Time taken for tests:  17.771 seconds
Complete requests:   100000
Failed requests:    98256
  (Connect: 49128, Length: 49128, Exceptions: 0)
Broken pipe errors:   0
Non-2xx responses:   50872
Total transferred:   25741232 bytes
HTML transferred:    12005792 bytes
Requests per second:  5627.15 [#/sec] (mean)
Time per request:    0.18 [ms] (mean)
Time per request:    0.18 [ms] (mean, across all concurrent requests)
Transfer rate:     1448.50 [Kbytes/sec] received

此处,XCache 禁用之后,每秒的请求数有所下降,表示 Apache 服务器处理每个请求需更长的时间。运行整套测试所需的时间也因此增加了。

尽管这只是一个简单的性能检测 —— phpMyAdmin 连接数据库的功能被禁用了,这样能限制单独解释 PHP 的处理时间 —— 并且不是非常科学,但它确实向我们演示了使用 XCache 能够完成哪些任务。对于微小的投入(欣慰地是,PHP 或 Apache 不需重编译),XCache 能产生一个相对较大的回报。代码越复杂,可能的受益也越大。

若想了解 XCache 是如何有效地运行的,请访问 http://localhost/xadmin 并单击 List PHP。您能看到缓存中的 PHP 文件列表,连同 cache hit、操作码的代码大小、源文件的字节大小,等等。图 3 显示了 XCache 专门为 XAMPP 栈包构建时的结果。

图 3. XCache 管理页面反映了缓存的状态和内容

前面已经提及,XCache 是许多加速器中的一种。在强大的 Zend 软件中还有许多免费的开源替代方案和一个商业化产品可选。每种 PHP 加速器都有自己的系统需求,所以应主要根据现有的或预期的配置以及应用程序的特性选择合适的加速器。从中推荐一种很难,但是安装编译器缓存是我建议您务必要做的。

大量的调优选择

除了缓存之外,还有许多其他途径可以加速应用程序。可以通过删除 PHP 引擎的一些很深奥的特性来简化它。例如,若不需使用 TCP/IP V6 (IPv6) 网络,便可在构建 PHP 时禁用该属性。通过在 PHP 源代码树的顶部输入 ./configure --help 可以参阅 PHP 配置选项的完整列表。无论选择哪一个配置选项,都应该将:

--enable-inline-optimization --disable-debug

添加到最终的配置命令。前一选项使 PHP 有可能更快地执行(不需使用类似 Zend Engine 的软件进行额外的操作码优化);后一选项取消了 PHP 的调试模式,只有当需要解决 PHP 应用服务器本身的问题时才需开启该模式。

当然,正如一些 C 应用程序,我们能利用 C 编

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号