首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >优化Apache和PHP的并发性能

优化Apache和PHP的并发性能
EN

Stack Overflow用户
提问于 2013-10-31 16:48:58
回答 1查看 1K关注 0票数 1

我正在用‘`ab’工具测试Apache & PHP设置(Ubuntu上的默认配置)。通过两个并发连接,我得到了相当满意的结果:

代码语言:javascript
复制
ab -k -n 1000 -c 2 http://localserver/page.php

Requests per second:    184.81 [#/sec] (mean)
Time per request:       10.822 [ms] (mean)
Time per request:       5.411 [ms] (mean, across all concurrent requests)

考虑到它是一个内存不足的虚拟机,它是可以的。现在,我想测试一个更现实的场景:请求在同时连接的100个用户(read: connections)之间传播:

代码语言:javascript
复制
ab -k -n 1000 -c 100 http://localserver/page.php

Requests per second:    60.22 [#/sec] (mean)
Time per request:       1660.678 [ms] (mean)
Time per request:       16.607 [ms] (mean, across all concurrent requests)

更糟的是。虽然每秒请求的数量并没有显著下降(184到60 #/秒),但从用户的角度来看,每次请求的时间却急剧增加(平均从10 ms增加到1.6秒以上)。最长的请求花费了8秒以上,在测试期间,用web浏览器手动连接到本地服务器几乎需要10秒。

是什么原因,以及如何将并发性能优化到可接受的水平?

(我使用Ubuntu附带的默认配置。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-31 19:22:47

首先,您需要查看每个脚本所消耗的内存量,即。memory_limit,然后将VM内存除以如下。这应该是您可以同时处理的连接数量,而不会耗尽内存,因此服务器将开始执行震荡操作。

你会得到一个非常低数量的连接。所以你需要

  • 增加内存
  • 降低memory_limit
  • 使每个连接完成得更快

下一步是查看是否有任何数据库查询比预期的要长,我通常会开始使用mysql--如果可以的话,> 0.5s的查询也会消除不使用索引的查询。

接下来,安装一个监视工具,如there,并查看是否有足够的CPU可用。

从业务的角度来看,这取决于这是一个新的网站/系统或存在的东西。如果它是新的,而且增长是戏剧性的,那么你需要在一段时间内在硬件上超支,一个不能工作或在流量下崩溃的系统很快就会侵蚀人们对企业的信任。最重要的是,如果托管费用低于每月1000美元,通常不值得进行大量优化。如果这是负担不起的,那么你可能需要回到你的商业模式。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19712280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档