1

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>
4

2 に答える 2

1

これが VPS ではなく DreamHost サーバーである場合は、CPU シェアのスライスを使い果たしたため、php プロセスが強制終了されている可能性があります。プロセスの 1 つが大量のリソースを消費したり、着信接続が多すぎたりすると、そのプロセスは強制終了され、ウェブサーバーは 503 を返します。

これらの制限がどのように設定されているかはわかりませんが、dreamhost の誰かがこのスレッドで説明しています:

Web サイトが DH で処理できるメモリと接続には制限があります。あまりにも多くのリソースを使用している多くの訪問者にアクセスしている場合、503 エラーが発生します。もしかしたら、あなたのウェブサイトは 3 年後に大きくなりすぎたのではないでしょうか? 訪問者の数と使用されたソフトウェアに関する詳細情報がなければ、推測することしかできません.

于 2012-07-31T20:19:22.223 に答える
0

これは、いくつかの異なる原因によって引き起こされる可能性があります

  1. Webサーバーが開いているファイルの制限に達しています(ulimitを確認してください)
  2. FPMを使用している場合は、子の制限を超えている可能性があります(fpm configを確認してください)
  3. 接続制限を超えている可能性があります(sysctl.confを確認してください)

最初にすべきことは、nginxまたはapacheログを確認することです。

于 2012-07-31T22:10:07.620 に答える