負荷テストといえばGatlingが有名なのですが、
今回はGoadを使ってローカルから簡単に負荷テストをしてみました。
導入は非常に簡単でございます。
■Goad
https://github.com/goadapp/goad
訳)
Goadを使用するとAWS Lambdaを複数の地域で同時に使用することで、世界各地のWebサイトをテストすることができます。
独自のAWS認証情報を使用して、マシンからGoadを実行できます。 Goadは必要なAWSリソースを自動的に作成し、テストを実行し、結果を地域別に表示します。このようにしてウェブサイトが世界の主要地域からどのくらい速いかを確認できます。
ふむ。GoとLoadを組み合わせればカエルぽくなるんですな(汗)
・構成
■Installation
・Mac(local)をインストール
※追記) インストール方法が変わりました!
https://github.com/goadapp/goad#installation
1 2 3 4 |
# wget https://github.com/goadapp/goad/releases/download/2.0.0-rc2x/goad-osx-x86-64.zip # unzip goad-osx-x86-64.zip Archive: goad-osx-x86-64.zip inflating: goad |
・aws configure
1 2 3 4 5 6 7 |
# aws configure --profile goad AWS Access Key ID [None]: xxxxxxxxxxxxxxx AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Default region name [None]: ap-northeast-1 Default output format [None]: # export AWS_DEFAULT_PROFILE=goad |
■See Goad command gif
実際にgoadコマンドを打ってみます。
アクセスログダァーーーーーーーーッ
■Load test
・インスタンスタイプ(t2.micro)
・apacheチューニング(デフォルト)
・H2Oチューニング(デフォルト)
今回はリクエスト数30万、同時接続1000ユーザで試してみます。(ap-northeastのみ)
・Apache2.4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ./goad -c 1000 -n 300000 --region=ap-northeast-1 -m GET http://13.114.118.62 Regional results Region: ap-northeast-1 TotReqs TotBytes AvgTime AvgReq/s AvgBytes/s 300000 39 MB 0.195s 51.26 6.6 kB/s Slowest Fastest Timeouts TotErrors 13.907s 0.005s 15 15 Overall TotReqs TotBytes AvgTime AvgReq/s AvgBytes/s 300000 39 MB 0.195s 51.26 6.6 kB/s Slowest Fastest Timeouts TotErrors 13.907s 0.005s 15 15 HTTPStatus Requests 200 299985 |
こりゃヤバイ、ロアベもメモリーも使い切っとる。。
1分3.65秒かかりました。(負荷でサーバフリーズしましたん♪)
そりゃpreforkのチューニングしてないから当たり前。
・H2O
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ./goad -c 1000 -n 300000 --region=ap-northeast-1 -m GET http://13.114.118.62 Regional results Region: ap-northeast-1 TotReqs TotBytes AvgTime AvgReq/s AvgBytes/s 300000 39 MB 0.052s 194.40 25 kB/s Slowest Fastest Timeouts TotErrors 0.313s 0.001s 0 0 Overall TotReqs TotBytes AvgTime AvgReq/s AvgBytes/s 300000 39 MB 0.052s 194.40 25 kB/s Slowest Fastest Timeouts TotErrors 0.313s 0.001s 0 0 HTTPStatus Requests 200 300000 |
まったくロアベもメモリーもビクともしません。
20秒くらいで終わりました。(恐るべし)
■まとめ
簡単に負荷テストができて良いですな。
次回は他のリージョンから負荷テストしてみます。
H2Oはデフォルトでチューニングされているのでさらにチューニングしてみよう。
AWSでの負荷テストは必ず申請しないとブロックされるから注意!
0件のコメント