如何加速 Apache

如何加速 Apache

我们有一台 8 核、16GB RAM 和 RAID 0 SAS 10K 驱动器的服务器。我们的目标是使用它来快速运行一个相当简单的 php 应用程序。我们已经测试了所有其他组件,我们认为我们已经将范围缩小到 Apache 是我们的瓶颈。

我不是 Apache 专家,我做了一些研究并测试了一些东西,但当我使用 JMeter 测试启动 100 个并发连接时,前 10 - 20 个连接在 30 - 100 毫秒内快速返回,但其余的则需要 1000 毫秒到 3000 毫秒。有人知道在我们的 Apache 配置中要更改什么才能使其更快吗?现在它是 Apache 的原始安装。

答案1

您是否绝对确定 Apache 是您的真正瓶颈?您没有提及有关“相当简单的 PHP 应用程序”的任何信息,但对我来说,它听起来像是使用了一些数据库,并且在基准测试期间很快开始减慢速度。

您应该考虑调整的传统 Apache 值是 MaxClients、ServerLimit、MinSpareServers、MaxSpareServers 和 TimeOut。但大多数时候,调整这些值对静态内容最有帮助;从 Apache 的角度来看,PHP 和其他动态内容更加不可预测。如果一个 PHP 脚本需要五秒钟才能运行并占用 100% 的 CPU,那么它需要五秒钟才能运行并占用 100% 的 CPU,无论多少 Apache 调整都无济于事。

您正在使用什么 Linux 发行版?

有了像 Apache 这样强大的服务器,每秒可以轻松处理成千上万个带有静态内容的 HTTP 请求;而使用 PHP,这个数字会少得多。

答案2

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

你的主要工作很简单,你使用任何数据库吗?如果是,你应该检查你的查询是否经过优化(例如,在 mysql 中,你可以启用 slow_query 记录器,查看此页面:http://dev.mysql.com/doc/refman/5.1/en/slow-query-log.html

您还可以检查您的 php 解释器花费了多少时间来生成您的网页(取决于您的 php 脚本执行的操作),一个好主意是使用 apc (在此处输入链接描述),检查您的包管理器是否已经安装了它(如果您使用的话)。

您的测试怎么样?您是在静态内容上还是在 php 页面上进行的?那么,您能提供更多关于您的架构的信息吗?!有很多方法可以改进 php/apache 应用程序,但我们需要更多关于您的案例的信息 :-)

答案3

在 Web 服务器和用户之间安装缓存反向代理,这还有提高安全性的额外好处(前提是设置正确)

乌贼

非常好,但有点难以理解,但如果你想充分利用每一毫秒的时间,那么投资时间是值得的

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

相关内容