AB 基准测试结果令人担忧?

AB 基准测试结果令人担忧?

说到系统管理,我真是个菜鸟。我在 EC2 MicroInstance 上运行一个应用程序。

在公开发布之前,我想确保自己达到了最低的性能水平。我正在尝试进行一些压力测试,但一直难以找到好的比较来帮助我了解自己的表现。

我已经测试了可以说是负载最大的页面,我很好奇这是否适合刚刚启动的网站,并且在最好的情况下,如果媒体点击量恰到好处,可以在一周内看到 10,000 个独立访客。

    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 毫秒内得到处理。其中一个请求耗时 84996 毫秒。

我在 Ubuntu 10.4 上使用带有 mod_wsgi 的 Apache2.x。我非常确定 MPM 是 Prefork。此服务器处于测试模式,因此没有外部负载。

并发似乎是这里最大的问题。当我删除它时,服务器速度非常快。当我添加超过 10 的并发时,我收到一条错误消息:“指定的超时已过期 (70007)”。

这可能没什么意义,因为我才刚刚开始。我很想听听大家的意见。

谢谢。

答案1

在调整 prefork apache 时我会关注以下几点:

  • 检查 MaxClients 和 ServerLimit。这会告诉您的服务器可以同时运行多少个进程。您应该根据每个进程运行的内存与 RAM 限制进行比较来进行限制。确保为服务器上运行的其他程序(系统、MySQL 等)留出内存

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

  • 保持 KeepAliveTimeout 非常低。这基本上就是进程保持打开状态足够长的时间,以便在继续处理下一个请求之前捕获更多请求。对于 prefork,我将我的值保持在 2KeepAliveTimeout 2

仅几点建议...希望对您有帮助

答案2

请记住,EC2 微型实例具有 CPU 突发功能 - 您最多可以使用两个计算单元,但只能使用很短的时间。在那段(相当短的)时间之后,您的 CPU 使用率会在几分钟内受到严重限制。

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

相关内容