UltraMonkey-L7でロードバランサー構築 その5

先日のNetscreen25の移行も無事終わったので、UltraMonkey-L7を再開。
今回は、負荷をかけていじめてみます。ウキー!w 正確にいえばベンチマークですが。。。

負荷をかけるにあたっては、下の図のような構成でやります。
UM-L7負荷テスト

まず、パターンAとしてVPS単体に負荷をかけます。次にこれを基準値として
UM-L7がインストールされているVMにパターンBの負荷をかけます。
このパターンAとB比較してみたいと思います。

負荷をかけるマシンは、物理的に離したマシンで『Apache ab』を使用します。
JMeterでもいいんですがちょっと手間もかかるし手軽にやるにはabで十分です。
リクエスト数の限界が知れればいいので。
VPSのhostA,Bには一行だけ書いた静的htmlを配置。回線はギガビットイーサです。

abの使い方はここが参考になるでしょう→http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15b.html

abは簡単にいえば、設定した値(総リクエスト数)をどのぐらいの速度でクリアできるか?
っていうベンチマークツール。webサーバとしての性能を測るにはもってこいですね。

早速負荷を順番にかけていきました。
パターンA
負荷A-1
同時接続数:10
総リクエスト数:100

# /opt/httpd/bin/ab -c 10 -n 100 http://192.168.100.102/index.html
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking 192.168.100.102 (be patient).....done
 
 
Server Software:        Apache/2.2.14
Server Hostname:        192.168.100.102
Server Port:            80
 
Document Path:          /index.html
Document Length:        51 bytes
 
Concurrency Level:      10
Time taken for tests:   0.025 seconds
Complete requests:      100
Failed requests:        0
Write errors:           0
Total transferred:      35754 bytes
HTML transferred:       5151 bytes
Requests per second:    3983.27 [#/sec] (mean)
Time per request:       2.510 [ms] (mean)
Time per request:       0.251 [ms] (mean, across all concurrent requests)
Transfer rate:          1390.80 [Kbytes/sec] received
 
Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   0.3      1       2
Processing:     1    2   0.3      2       2
Waiting:        0    1   0.4      1       2
Total:          1    2   0.6      2       4
 
Percentage of the requests served within a certain time (ms)
  50%      2
  66%      3
  75%      3
  80%      3
  90%      3
  95%      3
  98%      4
  99%      4
 100%      4 (longest request)

予想通りこのぐらいだと一瞬で終わったw 結果を気になった項目を見てみますと。。。
Time taken for tests: 0.025 seconds が、全体でどのぐらい時間がかかったか。まさに一瞬w
Time per request: 2.510 [ms] (mean)が、ミリ秒間あたりのリクエスト数。
Time per request: 0.251 [ms] が、ミリ秒間当たりのリクエスト数。
Transfer rate: 1390.80 [Kbytes/sec] receivedが、スループットかな。秒間1,390Kbps≒9,120kbps。
Requests per second: 3983.27 [#/sec] (mean)が、秒間3983リクエストはいけまっせとw
最後のパーセンテージは、おそらくレスポンスにかかった時間のばらつきをだしているのでしょう。

だいたい結果の意味を押さえたところで、ここからは簡単に結果を出力。負荷は10倍ずつ増やしていきます。
負荷A-2
同時接続数:100
総リクエスト数:1000

# /opt/httpd/bin/ab -c 100 -n 1000 http://192.168.100.102/index.html
Time taken for tests:   0.428 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      354000 bytes
HTML transferred:       51000 bytes
Requests per second:    2336.88 [#/sec] (mean)
Time per request:       42.792 [ms] (mean)
Time per request:       0.428 [ms] (mean, across all concurrent requests)
Transfer rate:          807.87 [Kbytes/sec] received

負荷A-3
同時接続数:1000
総リクエスト数:10000

# /opt/httpd/bin/ab -c 1000 -n 10000 http://192.168.100.102/index.html
Time taken for tests:   15.235 seconds
Complete requests:      10000
Failed requests:        0
Write errors:           0
Total transferred:      3540000 bytes
HTML transferred:       510000 bytes
Requests per second:    656.39 [#/sec] (mean)
Time per request:       1523.487 [ms] (mean)
Time per request:       1.523 [ms] (mean, across all concurrent requests)
Transfer rate:          226.92 [Kbytes/sec] received

一気に重くなってきましたw

負荷A-4
同時接続数:10000
総リクエスト数:100000

# /opt/httpd/bin/ab -c 10000 -n 100000 http://192.168.100.102/index.html
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
 
Benchmarking 192.168.100.102 (be patient)
socket: Too many open files (24)

やりすぎて怒られたw 同時接続数は固定でやった方がいいかもw
方針転換で、同時接続数は100に固定して総リクエスト数を変更しよう!w

つーことですみません、次回ちょっとやり方考えてから実験しますw
あまりにも行き当たりばったりにやりすぎたw

そういえばyDCを利用してくださるお客さんも増えてきまして現在5名(少ないけどw
グローバルIPを16個も取得しなければ黒字なんですが、一気に赤字にw
知り合いと企業向けでESXi4.0とOpenVZを利用して簡単なサイトをのっけています。
なかなか安定稼働してくれています。正直サービスレベルが低いのでなんともかんともですが。。。

関連記事

これまでのコメント

  1. chi9rin :

    負荷を上げていくと,そのうちクライアントからの接続が拒否されて /var/log/l7vs/l7vsd.log に「warning / no iomux available」というログが出力されるようになると思います.
    その際は /etc/l7vs/l7vs.cf の max_events の値を増やしてあげてください.

    目安はバースト時の同時接続数の 2 倍+10 くらいです.
    デフォルトは 1024 で,500 同時接続くらいに耐えられるように設定しています.
    度を超えて増やしすぎるとパフォーマンスが落ちますので,ご注意ください.

この記事にコメントする

Powered by WordPress, WP Theme designed by WSC Project. ログイン