AB的基准testing结果?

我是一个真正的noob当涉及到系统pipe理员。 我正在EC2 MicroInstance上运行一个应用程序。

在我公开发布之前,我想确保我达到最低的性能水平。 我正在尝试一些压力testing,但我一直在努力寻找好的比赛来帮助我理解自己的performance。

我已经testing了页面,可以说是最负载的,我很好奇,如果这是适合刚刚启动的网站,最好的情况下,可以看到一个星期,如果新闻点击恰到好处10K独特。

ab -n 5000 -c 10 http://mysite.com requests/sec: 53.36 time per request: 18.739 ms transfer rate: 12.66kb total transferred 1215000 bytes 

没有失败的请求。 我的CPU高达49%左右,内存不是很重。 平均上涨5.70点。

95%的请求在500毫秒内完成。 一个请求花了84996ms。

我在Ubuntu 10.4上使用Apache2.x和mod_wsgi。 我很确定MPM是Prefork。 这台服务器处于testing模式,所以没有外部负载。

并发似乎是这里的大问题。 当我删除它时,服务器是闪电般的。 当我添加更多的并发超过10,我得到一个错误,说:“超时指定已过期(70007)”。

这可能都是没有意义的,因为我刚刚开始。 我很想听听意见。

谢谢。

调整prefork apache时,我会看到一些事情:

  • 检查你的MaxClients和ServerLimit。 这会告诉您的服务器一次可以运行多less个进程。 您应该根据内存限制每个进程与您的内存限制进行比较。 一定要把内存留在服务器上运行的其他程序(系统,MySQL等)

  • 检查StartServer,MinSpareServers,MaxSpareServers。 确保你启动服务器有足够的进程来处理传入的请求,并保持足够的处理负载。 创build新线程的成本相对较高,会降低您的请求速度。

  • 保持KeepAliveTimeout真实的低。 这基本上是一个过程保持足够长的时间来捕获进一步的请求,然后再转到下一个请求。 对于prefork,我保持在2 KeepAliveTimeout 2

只是几个点…希望这有助于

请记住,EC2微型实例具有CPU突发 – 您可以使用最多两个计算单元,但只能使用很短的时间。 之后(相当小的)一段时间,你的CPU使用率将受到严格限制,持续几分钟。

如果您想要更一致的性能,请转到小实例types。