2014年3月24日月曜日

worker MPMとevent MPMの比較

マシン性能で絶対値的なものは変わってくるが、同じマシン上で並べて比べていれば、いくらか傾向が窺えるのではないかと思う。
CentOS 5.10上で比較した。


(1) Keep-Alive 無効の場合

コマンド

$ ab -c 1000 -n 1000000 http://centos5:8080/hello.html

(1.1) event MPM


Server Software:        Apache/2.4.7
Server Hostname:        centos5
Server Port:            8080

Document Path:          /hello.html
Document Length:        31 bytes

Concurrency Level:      1000
Time taken for tests:   58.275 seconds
Complete requests:      1000000
Failed requests:        0
Write errors:           0
Total transferred:      274001096 bytes
HTML transferred:       31000124 bytes
Requests per second:    17160.13 [#/sec] (mean)
Time per request:       58.275 [ms] (mean)
Time per request:       0.058 [ms] (mean, across all concurrent requests)
Transfer rate:          4591.69 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0   29 114.8     16    3021
Processing:     9   29  61.2     19    4600
Waiting:        8   27  60.7     18    4595
Total:         26   58 130.1     35    4612

Percentage of the requests served within a certain time (ms)
  50%     35
  66%     38
  75%     40
  80%     43
  90%     49
  95%     57
  98%    256
  99%   1032
 100%   4612 (longest request)

(1.2) worker MPM


Server Software:        Apache/2.4.7
Server Hostname:        centos5
Server Port:            8080

Document Path:          /hello.html
Document Length:        31 bytes

Concurrency Level:      1000
Time taken for tests:   90.378 seconds
Complete requests:      1000000
Failed requests:        0
Write errors:           0
Total transferred:      274000000 bytes
HTML transferred:       31000000 bytes
Requests per second:    11064.69 [#/sec] (mean)
Time per request:       90.378 [ms] (mean)
Time per request:       0.090 [ms] (mean, across all concurrent requests)
Transfer rate:          2960.67 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0      17
Processing:     8   90   2.1     90     100
Waiting:        8   90   2.1     90     100
Total:         26   90   1.9     90     105

Percentage of the requests served within a certain time (ms)
  50%     90
  66%     90
  75%     91
  80%     91
  90%     92
  95%     93
  98%     96
  99%     97
 100%    105 (longest request)


(2) Keep-Alive 有効の場合


コマンド
$ ab -c 1000 -n 1000000 -k http://centos5:8080/hello.html

(2.1) event MPM


Server Software:        Apache/2.4.7
Server Hostname:        centos5
Server Port:            8080

Document Path:          /hello.html
Document Length:        31 bytes

Concurrency Level:      1000
Time taken for tests:   34.224 seconds
Complete requests:      1000000
Failed requests:        172849
   (Connect: 0, Receive: 0, Length: 172849, Exceptions: 0)
Write errors:           0
Keep-Alive requests:    827151
Total transferred:      256590607 bytes
HTML transferred:       25641774 bytes
Requests per second:    29219.55 [#/sec] (mean)
Time per request:       34.224 [ms] (mean)
Time per request:       0.034 [ms] (mean, across all concurrent requests)
Transfer rate:          7321.74 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.6      0      17
Processing:     0   34  71.7      2     261
Waiting:        0   34  71.8      2     261
Total:          0   34  72.0      2     261

Percentage of the requests served within a certain time (ms)
  50%      2
  66%      2
  75%      2
  80%      3
  90%    189
  95%    203
  98%    215
  99%    222
 100%    261 (longest request)

(2.2) worker MPM


Server Software:        Apache/2.4.7
Server Hostname:        centos5
Server Port:            8080

Document Path:          /hello.html
Document Length:        31 bytes

Concurrency Level:      1000
Time taken for tests:   85.213 seconds
Complete requests:      1000000
Failed requests:        0
Write errors:           0
Keep-Alive requests:    990101
Total transferred:      309564449 bytes
HTML transferred:       31000000 bytes
Requests per second:    11735.33 [#/sec] (mean)
Time per request:       85.213 [ms] (mean)
Time per request:       0.085 [ms] (mean, across all concurrent requests)
Transfer rate:          3547.70 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.4      0      18
Processing:     0   81 818.1      1    8588
Waiting:        0   81 818.1      0    8588
Total:          0   81 818.2      1    8588

Percentage of the requests served within a certain time (ms)
  50%      1
  66%      1
  75%      1
  80%      1
  90%      1
  95%      1
  98%      1
  99%      3
 100%   8588 (longest request)



とりあえず、切り貼りだけ。
サーバ側のプロセス・スレッドまわりの設定はAsyncRequestWorkerFactor以外は両者同じにした。

(httpd.conf)

StartServers              2
MaxRequestWorkers         6
MinSpareThreads           6
MaxSpareThreads           6
ThreadsPerChild           3
AsyncRequestWorkerFactor 50
MaxConnectionsPerChild    0



event MPMの場合、abでエラーが発生している。

0 件のコメント:

コメントを投稿