DreamHost で専用サーバーを実行しています: クアッド コア、4 GB 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 によると、ページの 1 回の読み込みで、基本クラスの読み込みに 0.0017 秒、コントローラーの実行時間に 0.1711 秒、合計実行時間は 0.1731 秒で、2.887 MB のメモリを使用しています。
ab -n 100 -c 10
失敗したリクエストは常に 0 件ですが、同時接続数が 25 を超えるものには、多数の失敗した接続があるようです。
来週は大量のトラフィックが一気に来ると予想されますが、サーバーを準備するにはどうすればよいですか? このまま持ちこたえますか?
編集:httpd.confを介して含まれている私のhttpd-mpm.confファイルから
<IfModule mpm_worker_module>
StartServers 4
MaxClients 600
MinSpareThreads 50
MaxSpareThreads 150
ThreadsPerChild 25
MaxRequestsPerChild 0
</IfModule>