所以我今天在服务器上运行了这个命令“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。
不要以为我见过如此糟糕的表现,那么究竟是什么造成的呢?
感谢。
答案 0 :(得分:1)
对于初学者来说,尝试直接测试原点并从混合中获取cloudflare(除非你将html作为可缓存的,并且你试图测试cloudflare的服务能力)。鉴于cloudflare的目的之一是保护网站,认为您的测试可能会受到速率限制(至少绕过它会消除可能的调查来源)并非没有道理。
将$ request_time添加到nginx的访问日志格式,这将告诉您服务器端的性能视图。如果它看起来仍然很糟糕,你可能不得不使用像New Relic或DynaTrace这样的东西来获得更多关于时间进度的详细信息(如果你没有自己检测应用程序)。
你使用php-fpm将nginx连接到php吗?如果没有,你应该调查一下。
对于那些糟糕的时间,可能性在实际应用中,而不是在配置中。