我在 DreamHost 上运行专用服务器:四核,4GB RAM。
Linux (Debian)、Apache、PHP(使用 XCache 进行操作码缓存)、MySQL。
我查询的 URL 每次都有 18 个 MySQL 查询。
我想知道为什么当我执行“ab -n 500 -c 50 http://< url >/”时会得到以下结果:
Server Software: Apache
Server Hostname: <url>
Server Port: 80
Document Path: /
Document Length: 162809 bytes
Concurrency Level: 50
Time taken for tests: 12.664 seconds
Complete requests: 500
Failed requests: 377
(Connect: 0, Receive: 0, Length: 377, Exceptions: 0)
Write errors: 0
Non-2xx responses: 377
Total transferred: 20291876 bytes
HTML transferred: 20147278 bytes
Requests per second: 39.48 [#/sec] (mean)
Time per request: 1266.372 [ms] (mean)
Time per request: 25.327 [ms] (mean, across all concurrent requests)
Transfer rate: 1564.81 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.4 0 2
Processing: 194 1190 1617.0 248 6060
Waiting: 194 965 1263.9 248 5190
Total: 194 1190 1617.0 248 6060
Percentage of the requests served within a certain time (ms)
50% 248
66% 359
75% 1555
80% 2787
90% 3979
95% 4709
98% 5427
99% 5967
100% 6060 (longest request)
所有 377 个失败的请求都是 503。这可能是什么原因造成的?在执行此操作时运行top
,我的处理器飙升至约 24%,但并没有对它征税太多。
我的 CMS 表示,单次加载页面,加载基类需要 0.0017 秒,控制器执行时间需要 0.1711 秒,总执行时间为 0.1731 秒,使用 2.887 MB 内存。
ab -n 100 -c 10
总是有 0 个失败的请求,但似乎任何有超过 25 个并发连接的东西都有一堆失败的连接。
我预计下周会同时出现大量流量,我怎样才能最好地准备我的服务器?这会保持原样吗?
编辑:来自我的 httpd-mpm.conf 文件,该文件是通过 httpd.conf 包含的
<IfModule mpm_worker_module>
StartServers 4
MaxClients 600
MinSpareThreads 50
MaxSpareThreads 150
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>