如何加快Apache

我们有一个8核心,16GB内存和RAID 0 SAS 10K驱动器的服务器。 我们的目标是快速使用这个服务一个相当简单的PHP应用程序。 我们已经testing了所有其他组件,我们认为我们已经缩小到Apache是​​我们的瓶颈。

我不是apache大师我已经做了一些研究并testing了一些东西,但是当我用JMetertesting的时候,对服务器启动了100个并发连接,第一个10-20快速地返回30-100ms,其余的则在1000ms到3000ms之间。 任何人都有什么想法来改变我们的apacheconfiguration,使其更快,现在它是一个香草安装apache。

你确定Apache是​​你真正的瓶颈吗? 你没有告诉任何关于你的“相当简单的PHP应用程序”的东西,但是对于我来说,它听起来像是在使用一些数据库,并且在你的基准testing中很快就会放慢速度。

您应该考虑调整的传统Apache值是MaxClients,ServerLimit,MinSpareServers,MaxSpareServers和TimeOut。 但大多数情况下,调整这些值对静态内容最有帮助; 从Apache的angular度来看,PHP和其他dynamic的东西更加难以预测。 如果一个PHP脚本需要5秒钟的时间才能运行并且吃掉100%的CPU,那么运行和吃掉100%的CPU需要5秒钟的时间,没有任何的Apache调优可以帮助你。

你有什么Linux发行版使用?

有了像Apache这样的强大的服务器,应该可以很容易地使用静态内容每秒处理成千上万个HTTP请求; 与PHP的数量可以less得多。

首先我们应该尝试确定问题出在哪里,你说你想用这个服务器来服务一个“相当简单的PHP应用程序”!

你主要是通过相当简单的,你使用任何数据库? 如果是的话,你应该检查你的查询是否优化(例如在mysql中你可以启用slow_querylogging器,看看这个页面: http ://dev.mysql.com/doc/refman/5.1/en/slow-query-log .html )

你也可以检查你的PHP解释器花了多less时间来生成你的网页(取决于你的PHP脚本是做什么的),一个好主意,以提高平均“执行”一个PHP脚本没有很多努力的时间是使用APC ( 在这里input链接描述 ),检查你的包pipe理器是否已经安装(如果你使用的话)。

你的testing呢,你做了静态内容还是在你的PHP页面? 那么你可以提供关于你的架构的更多信息吗? 有很多方法来改善PHP / Apache应用程序,但我们需要更多的信息:-)关于你的情况

在Web服务器和用户之间安装一个caching的反向代理,这也提高了安全性(提供了正确的安装)

乌贼

非常好,但有点难以理解,但如果你想每一个时间挤奶,时间的投资是非常值得的

http://www.squid-cache.org/