【问题标题】:Apache Benchmarks really bad, any advice?Apache Benchmarks 真的很糟糕,有什么建议吗?
【发布时间】:2012-04-25 20:52:50
【问题描述】:

使用 Apache Bench,我网站的主页每秒只能处理 0.42 个请求。一个简单的 phpinfo() 页面每秒可以处理 31.99 个请求,对于这样一个简单的脚本来说,这似乎真的很慢。显然我的主页处理 0.42 个请求是不可接受的。

我在 Windows Server 2008 上运行 Apache 2.2。4 GB RAM,2.4 GHz Intel Xeon CPU。

该网站建立在 PHP CMS 表达式引擎和 MySQL 数据库之上。 Expression Engine 具有非常积极的页面缓存,因此主页对于所有意图和目的都是静态的(正在进行一些处理,但最终只是将静态文件存储在硬盘上)。我也打开了 SQL 缓存(分配了 200 mb)。页面不缓存的时候,首页有84个查询,看起来也不算太疯狂。

关于如何让这件事运行得更好,有人有什么明显的想法吗?我应该检查某种 php.ini、my.ini 或 httpd.conf 设置吗?

【问题讨论】:

  • 您运行 Apache Bench 的确切命令行是什么?
  • 一个单个请求的84个SQL查询?! Oo 在每个请求上?
  • @KingCrunch 查询大部分不在我的掌控之中,表达式引擎会生成大量的查询,而且这是一个非常动态的页面。
  • 我认为你需要一个有效的 utl
  • @Dagon SO 为我自动链接,对不起。它是 ab hxxp://localhost/

标签: php apache windows-server-2008 apachebench


【解决方案1】:

您可以使用反向代理,例如Varnish,因为最快的应用程序是未执行的应用程序。尤其是ESI-Support 非常酷,可以加快高动态页面的速度。

【讨论】:

  • 谢谢,我会调查的。由于页面被表达式引擎静态缓存了 30 分钟,所以这 84 个查询每 30 分钟只执行一次。这就是为什么这对我来说如此莫名其妙。
  • 但它是通过 EE 的前端控制器缓存的 - 在丢弃缓存文件之前仍然会进行大量处理。
【解决方案2】:

真是可怜。在我坐的机器上,我使用 ab -c 30 -n 1000 http://localhost/phpinfo.php 获得 42 页/秒,这是一台更基本的机器,它也可以做很多其他事情。不过它正在运行 Linux ;)

你确定瓶颈是 PHP 吗?如果是这样,请尝试使用opcode cache。除此之外,这是通常的调整过程。

首页有84个查询,看起来还不算太疯狂。

天哪!也许不在你的星球上。如果您预计会有任何流量,那么您应该查看 ESI 帧。

【讨论】:

    猜你喜欢
    • 2011-10-27
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多