Flash server - stress test
負荷テスト条件
  • DELL Power Edge sc 440
  • CPU : Xeon 1.86GHz
  • RAM : 1GB
  • 接続 : スイッチングハブを介してabやsiegeを実行するマシンと接続
  • 利用した生成システム : こちらのアクセス数制限を解除したもの
  • 備考 : このシステムは、合成前のテンプレートや画像をメモリにキャッシュするように作られています。
  • 利用したファイル : test1,test2はこちらtest3はこちらを解凍したものを全てアップロード
  • テンプレート : 50KBと4KBの2種類で実験
ab
ab ( Apache Bench ) で負荷テストした結果の情報です。
test 1 重め
  • テンプレート : 約50KB かなりの量のスクリプト+少しのベクター+少しの画像で出来ている
  • 合成・挿入の内容 : jpeg(100px) x 1, gif(100px) x 1, SWF x 1, 変数 x 3, テンプレート
  • コマンド : ab -n 50000 -c 100 "http://192.168.11.10/gen/Generate?folder=1288780436846&template=heavy.swf&i1=2.gif&i2=1.jpg&i3=1.swf&v1=hello&v2=ハロー&v3=実験"
  • 秒203個のリクエストを処理
Server Hostname:        192.168.11.10
Server Port:            80

Document Path:          /gen/Generate?folder=1288780436846&template=heavy.swf&i1=2.gif&i2=1.jpg&i3=1.swf&v1=hello&v2=ハロー&v3=実験
Document Length:        57480 bytes

Concurrency Level:      100
Time taken for tests:   246.266 seconds
Complete requests:      50000
Failed requests:        0
Write errors:           0
Total transferred:      2883708336 bytes
HTML transferred:       2874404616 bytes
Requests per second:    203.03 [#/sec] (mean)
Time per request:       492.532 [ms] (mean)
Time per request:       4.925 [ms] (mean, across all concurrent requests)
Transfer rate:          11435.28 [Kbytes/sec] received
test 2 軽め
  • テンプレート : 約4KB
  • 合成・挿入の内容 : jpeg(100px) x 1, gif(100px) x 1, SWF x 1, 変数 x 3, テンプレート
  • コマンド : ab -n 100000 -c 100 "http://192.168.11.10/gen/Generate?folder=1288780436846&template=lite.swf&i1=2.gif&i2=1.jpg&i3=1.swf&v1=hello&v2=ハロー&v3=実験"
  • 秒1204個のリクエストを処理
Server Hostname:        192.168.11.10
Server Port:            80

Document Path:          /gen/Generate?folder=1288780436846&template=lite.swf&i1=2.gif&i2=1.jpg&i3=1.swf&v1=hello&v2=ハロー&v3=実験
Document Length:        9279 bytes

Concurrency Level:      100
Time taken for tests:   83.009 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      946400000 bytes
HTML transferred:       927900000 bytes
Requests per second:    1204.69 [#/sec] (mean)
Time per request:       83.009 [ms] (mean)
Time per request:       0.830 [ms] (mean, across all concurrent reques
test 3 重め - 100個swfを挿入
  • テンプレート : 約50KB
  • 合成・挿入の内容 : swf(0.5KB) x 100, テンプレート
  • コマンド : ab -n 100000 -c 100 "http://192.168.100.1/gen/Generate?folder=1289012401086&template=tmp100.swf&insert2instance&m1=1.swf,2.swf,3.swf,4.swf,5......."
  • 秒117個のリクエストを処理
Server Hostname:        192.168.100.1
Server Port:            80

Document Path:          /gen/Generate?folder=1289012401086&template=tmp100.swf&insert2instance&m1=1.swf,2.swf,3.swf,4.swf,5.swf.....
Document Length:        99398 bytes

Concurrency Level:      100
Time taken for tests:   848.763 seconds
Complete requests:      100000
Failed requests:        0
Write errors:           0
Total transferred:      9959653968 bytes
HTML transferred:       9941049876 bytes
Requests per second:    117.82 [#/sec] (mean)
Time per request:       848.763 [ms] (mean)
Time per request:       8.488 [ms] (mean, across all concurrent requests)
Transfer rate:          11459.29 [Kbytes/sec] received
siege
siegeで負荷テストした結果の情報です。
test 1 重め
  • テンプレート : 約50KB かなりの量のスクリプト+少しのベクター+少しの画像で出来ている
  • 合成・挿入の内容 : jpeg(100px) x 1, gif(100px) x 1, SWF x 1, 変数 x 3, テンプレート
  • コマンド : siege -c100 -r500 -b -i -f urls.txt
  • 秒205個のリクエストを処理
Transactions:		       50000 hits
Availability:		      100.00 %
Elapsed time:		      243.76 secs
Data transferred:	     2706.15 MB
Response time:		        0.49 secs
Transaction rate:	      205.12 trans/sec
Throughput:		       11.10 MB/sec
Concurrency:		       99.74
Successful transactions:       50000
Failed transactions:	           0
Longest transaction:	        0.97
Shortest transaction:	        0.11
test 2 軽め
  • テンプレート : 約4KB
  • 合成・挿入の内容 : jpeg(100px) x 1, gif(100px) x 1, SWF x 1, 変数 x 3, テンプレート
  • コマンド : siege -c100 -r1000 -b -i -f liteurls.txt
  • 秒1301個のリクエストを処理
Transactions:		      100000 hits
Availability:		      100.00 %
Elapsed time:		       76.82 secs
Data transferred:	      813.19 MB
Response time:		        0.08 secs
Transaction rate:	     1301.74 trans/sec
Throughput:		       10.59 MB/sec
Concurrency:		       98.97
Successful transactions:      100000
Failed transactions:	           0
Longest transaction:	        0.21
Shortest transaction:	        0.00
test 3 重め - 100個swfを挿入
  • テンプレート : 約50KB
  • 合成・挿入の内容 : swf(0.5KB) x 100, テンプレート
  • コマンド : siege -c100 -r1000 -b -i -f url_100gen.txt
  • 秒117個のリクエストを処理
Transactions:		       50000 hits
Availability:		      100.00 %
Elapsed time:		      424.35 secs
Data transferred:	     4739.67 MB
Response time:		        0.85 secs
Transaction rate:	      117.83 trans/sec
Throughput:		       11.17 MB/sec
Concurrency:		       99.74
Successful transactions:       50000
Failed transactions:	           0
Longest transaction:	        1.51
Shortest transaction:	        0.02
ちなみに
サクラインターネットのVPSや専用サーバー(帯域は無料のもの)に対してab等でリクエストをしてみると、秒10しか処理してくれません。これは帯域のオーバーヘッドと考えられ、改善するには帯域のアップグレードが必要だと思います。
Amazon EC2のUS east / small について、abで「重め」のテストをしてみると、こちらも秒10ぐらいしか処理してくれません。これも帯域のオーバーヘッドと考えられます。cpuもmemoryも余裕があるためです。2台のインスタンスなら倍のリクエストを処理するのかは、試していません。
本テストは外部ホスティングではなく自室に生成サーバーを置き、その隣に置いたPCで負荷を掛けました。接続は100BASE-Tスイッチングハブを介しています。
テストに使ったのは速度より汎用性にポイントを置いた生成システムです。速度にフォーカスして案件に合わせてシステムを作り替えた場合、もっと高速になります。
Home Figment Research Tokyo Japan 2010