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

先日のNetscreen25の移行も無事終わったので、UltraMonkey-L7を再開。
今回は、負荷をかけていじめてみます。ウキー!w 正確にいえばベンチマークですが。。。
まず、パターン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を利用して簡単なサイトをのっけています。
なかなか安定稼働してくれています。正直サービスレベルが低いのでなんともかんともですが。。。

2009/11/28 土曜日 at 10:24
負荷を上げていくと,そのうちクライアントからの接続が拒否されて /var/log/l7vs/l7vsd.log に「warning / no iomux available」というログが出力されるようになると思います.
その際は /etc/l7vs/l7vs.cf の max_events の値を増やしてあげてください.
目安はバースト時の同時接続数の 2 倍+10 くらいです.
デフォルトは 1024 で,500 同時接続くらいに耐えられるように設定しています.
度を超えて増やしすぎるとパフォーマンスが落ちますので,ご注意ください.