LoginSignup
4
1

More than 5 years have passed since last update.

IDCFクラウドを使ってさくっと負荷試験

Last updated at Posted at 2016-12-20

本記事は IDCF Cloud Advent Calendar 2016 に参加しています。

初めてQiitaに記事書きました。noriko3 と申します。
モフモフしたもの、特に猫が好きです。赤いリボンした白猫なんかもうかわいくて仕方ないですね。

それは置いといて。

時々仕事で負荷試験っぽいものをしたりするんですが、いちいち環境作ってやるのはめんどくさいしなーとか思ってたら、ec2-bench というものがあるということを知ったのですが、abした結果も欲しいしなぁ、もっと大量にアクセスしたいんじゃあああ!となり、ec2-ab-bench というものを作ったんですが、

これって別にどこのクラウドでもよくない?っていうか、AWSはネットワーク料金怖いからIDCFクラウドでやったらちょっと安心出来ないかしら?というわけで、idcf-ab-bench というものを作ってみました。

cloudstack-api を叩いて、ssh で ab コマンドを投げるだけといういたってシンプルなものです。

とりあえず使い方なんぞを解説したいと思います。

まず、cloudstack-api を使えるようにする。

参考: http://docs.idcf.jp/cloud/introduction/
python3系だとエラーが出て色々面倒そうだたったので結局2系使いました。
ここで結構時間とられました。pythonとか随分触ってないので追う気力が(
このスクリプトのために、テンプレートを公開していますので、リージョンは東日本リージョン2を使って下さい。

idcf-ab-bench.conf を設定する

サービスオファーリング(service_offering_id)

cloudstack-api listServiceOfferings -t id,name,displaytext

好きなのを選んでください。

テンプレートID(template_id)

dc91e704-c03d-45c2-8353-4247846de388
公開テンプレートをご利用ください。
デフォルトのは ab 入ってないし ulimit -n が 1024 だったのでその辺ちょっと手を入れた程度ですが。
# というか他の人もちゃんと使える・・・よね?!

ゾーンID(zone_id)

e8ebfccb-eb38-43ed-8abf-80b5f37c3aa9
waber 有効にしてください

SSHのキー(keypair)

ここに記載されたキー名でSSHします。
ない場合はポータルから作成してください。
秘密鍵は $HOME/.ssh/${keypair} という名前にして 600 で置いてください。

IPアドレスのID(ipaddress_id)

cloudstack-api listPublicIpAddresses -t id,ipaddress

IPアドレス(ipaddress)

↑で取得したものを記載

VM作成数(count)

作成するVM数を指定します

ab -n ココ(request_number) -c ココ(client_number)

はじめは少なめで
10000とか指定したい場合は、スペック高めのタイプにするといいかも

これで多分準備は完了です。

やってみる

norikos-MacBook-Air-3:idcf-ab-bench noriko$ sh idcf-ab-bench.sh http://example.com/asdf
work_dir: /Users/noriko/tmp/idcf-ab/1220-2325

destroy command:
 cloudstack-api destroyVirtualMachine --id a88543fc-0e14-4f61-b03a-7636c24beff4
 cloudstack-api destroyVirtualMachine --id d1b7fcc4-2be5-4f7a-8a53-89b8fd609910
norikos-MacBook-Air-3:idcf-ab-bench noriko$ 

削除コマンドを表示していますので、不要でしたらコマンド実行して削除してください。
work_dir の中に ab-数字.log というファイルが作成されていて、そこに ab の実行結果が入っています。

よしなに調理してください。

いろいろ仕組みとかなんとか

ssh するポート

1つのIPを使いまわしたかったので(新しいIP取るとお金かかるし)、適当なポートを開けて ssh するようにしてあります。コマンド実行時に UNIXTIME の下4桁とって、VM作成毎に ++ していってるだけなんで、時々かぶるかもしれません。
こまめにVMを完全削除すれば多分大丈夫です。

VM名

idcf-ab-bench-月日-時分-n

という感じです。1回やるのに1分はかかるんで、被らない想定。
同名で作成出来たらよかったんだけど、これはこれでいいのかな?

VM1つでだいたい1分使ってる

VM作成して、作成したかどうかのチェックをしないで sleep してます(
ポートフォーワードの設定も同じです。20秒だと時々足らなかったので30秒にしました。
この辺はどうにかしたいというか、VM作成時にネットワークの設定も一緒に出来るといいんですが。

感想

結構たくさん作っちゃいました。

Screen Shot 2016-12-20 at 11.38.15 PM.png

3時間くらいでスクリプト〜記事まで書いたので結構雑です。ご利用は個人の責任でお願いします。

またなんか思いついたら記事書きたいと思います。それではまたーノ

追記

Screen Shot 2016-12-21 at 7.33.20 PM.png

スクリプト書いてあれこれしてかかったお値段は5円でした。公開テンプレートはどうなるんだろう(あとで調べる)

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1