-1

所以我今天在服务器上运行了这个命令“ab -c 50 -n 5000 http://lala.la ”,我得到了这些“惊人”的结果:

Document Path:          /
Document Length:        26476 bytes

Concurrency Level:      50
Time taken for tests:   1800.514 seconds
Complete requests:      2427
Failed requests:        164
   (Connect: 0, Receive: 0, Length: 164, Exceptions: 0)
Write errors:           0
Total transferred:      65169733 bytes
HTML transferred:       64345285 bytes
Requests per second:    1.35 [#/sec] (mean)
Time per request:       37093.408 [ms] (mean)
Time per request:       741.868 [ms] (mean, across all concurrent requests)
Transfer rate:          35.35 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   2.7      0      22
Processing:  4335 36740 9513.2  33755  102808
Waiting:        7 33050 8655.1  30407   72691
Total:       4355 36741 9512.4  33755  102808

Percentage of the requests served within a certain time (ms)
  50%  33754
  66%  37740
  75%  40977
  80%  43010
  90%  47742
  95%  56277
  98%  62663
  99%  71301
 100%  102808 (longest request)

这是在新安装的 Nginx 服务器上,使用 Cloudflare 和 APC。

不要以为我见过如此糟糕的性能,那么到底是什么原因造成的呢?

谢谢。

4

1 回答 1

1

对于初学者,请尝试直接测试源并将 cloudflare 排除在外(除非您将 html 设为可缓存并且您正在尝试测试 cloudflare 的服务能力)。鉴于 cloudflare 的目的之一是保护站点,因此认为您的测试可能会受到速率限制并非不合理(至少,绕过它会消除可能的调查来源)。

将 $request_time 添加到您的 nginx 访问日志格式中,这将告诉您服务器端的性能视图。如果它看起来仍然很糟糕,您可能必须使用 New Relic 或 DynaTrace 之类的东西来获取有关时间去向的更多详细信息(如果您不检测应用程序本身)。

您是否使用 php-fpm 将 nginx 连接到 php?如果没有,你应该调查一下。

对于那么糟糕的时候,它很可能在实际应用程序中,而不是在配置中。

于 2012-07-26T21:04:47.287 回答