web-dev-qa-db-ja.com

AbテストのApache2.4.7がNginX1.4.6と同じくらい速いのはなぜですか?

私は今非常に混乱しています...

私は常にNginxを使用して静的ファイルを提供し、phpをApacheに渡しました。新しいボックス4GBRAMを構築し、mpm_preforkモジュールとNginX1.4.6を使用してApache2.4.7をインストールしました。必要なものをセットアップし、いくつかのabテストを実行することにしました。私は自分が見たものにショックを受けました。すべてのabテストで、ApacheはNginXとほぼ同じように実行しました。

これはApache2.4に適していますか? 2.4でのパフォーマンスのアップグレードについて読みましたが、過去にはNginXがApacheを破壊していました。私は何かが足りないのですか?

Apache:

Concurrency Level:      100
Time taken for tests:   1.157 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      279000 bytes
HTML transferred:       21000 bytes
Requests per second:    864.65 [#/sec] (mean)
Time per request:       115.654 [ms] (mean)
Time per request:       1.157 [ms] (mean, across all concurrent requests)
Transfer rate:          235.58 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       24   32  11.3     27     236
Processing:    27   78  15.6     77     380
Waiting:       26   78  15.6     77     379
Total:         55  109  21.1    104     404

Percentage of the requests served within a certain time (ms)
  50%    104
  66%    116
  75%    121
  80%    123
  90%    129
  95%    135
  98%    162
  99%    173
 100%    404 (longest request)

NginX:

Concurrency Level:      100
Time taken for tests:   1.026 seconds
Complete requests:      1000
Failed requests:        0
Total transferred:      362000 bytes
HTML transferred:       21000 bytes
Requests per second:    975.00 [#/sec] (mean)
Time per request:       102.564 [ms] (mean)
Time per request:       1.026 [ms] (mean, across all concurrent requests)
Transfer rate:          344.68 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       24   33  14.4     29     223
Processing:    24   34  39.2     28     664
Waiting:       24   34  39.2     28     664
Total:         50   67  42.2     57     691

Percentage of the requests served within a certain time (ms)
  50%     57
  66%     72
  75%     76
  80%     77
  90%     80
  95%     86
  98%     97
  99%    240
 100%    691 (longest request)

これは私のすべてのテストで一貫しています。このテストには、私のすべてのテストの中で最大のパフォーマンスギャップがあります。通常、ApacheはNginXの生のリクエスト/秒で約5%-10%少なくなっています。

Apache 2.4が実際にNginXに近い場合、リバースプロキシとそれに伴う他のすべての複雑さを設定することに意味がありません。

考え?

1
Eko3alpha

このようなテストでは、Apacheは、テストの開始後、テスト期間中100の子プロセスを存続させていると予想されます。その結果、のイベント駆動型単一プロセスモデルと同等のパフォーマンスを達成できます。 Nginx。 ApacheのStartServersとMinSpareServersを100に設定すると、ベンチマークのギャップをさらに埋めることができるかもしれません。同じ同時実行性を実現するために、すべてのhttpdプロセス全体のメモリ使用量が高くなると予想します。これは、使用可能なRAMと予想される最大同時実行性によって、大きな欠点になる場合とそうでない場合があります。

1
sa289