負荷テストの方法について

513 views
Skip to first unread message

Takanobu Izukawa

unread,
Jan 10, 2011, 9:03:38 AM1/10/11
to Google-App-Engine-Japan
はじめまして。
イズカワと申します。

今回、仕事で Google App Engine を使う事になりそうで、
どれぐらいの課金がどこに必要になりそうなのか、負荷テストをする必要が出てきました。

ここで気になっているのが負荷テストの方法で、 ab などを使って単一の IP からリクエストして負荷をかけた場合でも、本番と同じような負荷結果
が得られるのかというところです。
一定以上の同一 IP からのアクセスに対して、 google 側で遮断されたり、スケールの抑制につながったりはしないのでしょうか?
また、もっと効率の良い、本番稼動に近い負荷テスト方法など、オススメなどももしあれば教えて頂ければ幸いです。

宜しくお願いします!

--
イズカワタカノブ / Takanobu Izukawa
MAIL : t.iz...@gmail.com
SITE : http://izukawa.org

najeira

unread,
Jan 11, 2011, 1:17:33 AM1/11/11
to Google-App-Engine-Japan
najeiraです。

同一IPから秒間数十のリクエストを長時間にわたって送ったことはありますが、
通常通りスケールしましたし、アクセスが遮断されることもありませんでした。

なお、課金額が目的なのであれば、負荷テストでなくても良いかと思います。
ログにcpu_msなどは記録されるので、何度かアクセスした平均値をもとに概算できます。

イズカワタカノブ

unread,
Jan 11, 2011, 2:28:22 AM1/11/11
to google-app-...@googlegroups.com
najeira 様

返信ありがとうございます!
機械的にテストしても、特に問題なくデータが取れるとの事で安心しました。

> なお、課金額が目的なのであれば、負荷テストでなくても良いかと思います。
> ログにcpu_msなどは記録されるので、何度かアクセスした平均値をもとに概算できます。

そうですね。一度その方法で概算を出してみて、負荷テストと合わせてデータを取ってみようと思います。

ありがとうございました!

イズカワ


2011年1月11日15:17 najeira <naj...@gmail.com>:

> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。

Ken Suzuki

unread,
Jan 11, 2011, 8:57:55 PM1/11/11
to Google-App-Engine-Japan
鈴木と言います。

初の投稿です。今グループに参加したばかりでしたが、丁度この負荷テストは今興味ある内容です。

自分がためしたところでは、abやsiegeを使ったテストでは、レスポンスが極端に遅くなりました。
たとえば秒50リクエストでもそうなりました。

あまり正確なデータを取っていませんので、そういうのを提示できないのですが、感覚的には1分程度経ったところで反応が突然悪くなります。
さらに、アプリの管理画面もしばらくリロードしても帰って来なくなります。
そのため、同一IPからの大量のリクエストは悪意あるものだと考えてGAE側のファイアーウォールで遮断されるのだろうと思っていました。

ところが、最近この文書を知って、このスクリプトを実行してみたところ、私の勘違いでなければ、秒200程度のリクエストが処理できています。
http://code.google.com/intl/ja-JP/appengine/articles/load_test.html

ab等とこのスクリプトの違いは、徐々に秒間リクエスト数が増えて行くという点ですが、理由はそれだけなのかわかりません。

また、そもそも、najeiraさんの投稿を見る限り、私の実験でGAEの反応が悪くなった理由はGAE側の仕様ではないような気がしています。

というわけで、余り参考にならないかもしれませんが、私の経験談です。

もし他にこういったテストをされた方がいらっしゃったら、是非お聞きしたいです。

Takashi Matsuo

unread,
Jan 12, 2011, 1:05:33 AM1/12/11
to google-app-...@googlegroups.com
Google 松尾です。

鈴木さんのおっしゃるように、正確な負荷テストをするためには、徐々にアク
セス数を増やしていく必要があります。殆どの場合、実際のアプリケーション
でもそのようなアクセスパターンになるはずなので、テストもそのように実施
すべきです。

中には本当に突発的にアクセスが増えるようなアプリケーションもあると思い
ますが(例えばテレビ番組で出すクイズのバックエンドなど)、そのようなアプ
リケーションでは、いつアクセスが殺到するのかを把握できているはずなので、
事前に instance の数を増やしておくことができるはずです。

また、もとの投稿にあるような心配もごもっともですが、通常レベルのアクセ
ス数であれば問題ありません。ただ 500 QPS を超えるようなテストをする場合
は、私まで事前にご連絡していただけますか。デフォルトでは、Request 数の
分間fixed quota は 500 QPS 程度になっています。こちらを増やしてテストす
る必要があるからです。

Happy coding :-)

-- matsuo

> --
> このメールは Google グループのグループ「Google-App-Engine-Japan」の登録者に送られています。
> このグループに投稿するには、google-app-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、google-app-engine...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/google-app-engine-japan?hl=ja からこのグループにアクセスしてください。
>
>

--
Takashi Matsuo
Developer Relations
Developer Advocate for Google App Engine/iGoogle
Google Japan, Inc.

イズカワタカノブ

unread,
Jan 12, 2011, 11:43:02 AM1/12/11
to google-app-...@googlegroups.com
イズカワです。

鈴木さん、松尾さん
返信ありがとうございます。

> 鈴木さんのおっしゃるように、正確な負荷テストをするためには、徐々にアク
> セス数を増やしていく必要があります。殆どの場合、実際のアプリケーション
> でもそのようなアクセスパターンになるはずなので、テストもそのように実施
> すべきです。

そうですね。実際のサイトでは Flash からのリクエストがコンスタントに飛ぶため、
そのあたりを ab などでテストしようかと考えていたのですが、
instance の増減の事も含めて、出来る限り本番に近い形でのモックを作ってみようと思います。

> また、もとの投稿にあるような心配もごもっともですが、通常レベルのアクセ
> ス数であれば問題ありません。ただ 500 QPS を超えるようなテストをする場合
> は、私まで事前にご連絡していただけますか。デフォルトでは、Request 数の
> 分間fixed quota は 500 QPS 程度になっています。こちらを増やしてテストす
> る必要があるからです。

万が一そうなりそうな場合は、是非相談させてください!

鈴木さん、貴重な情報をありがとうございます!参考にさせて頂きます。
他の方がどういったテストをされているのか気になりますよね。

宜しければ、他の方のテストなどのお話もお聞きしてみたいです。


2011年1月12日15:05 Takashi Matsuo <tma...@google.com>:

--

ms2

unread,
Jan 12, 2011, 5:25:01 PM1/12/11
to Google-App-Engine-Japan
佐藤と申します。こんにちは。

私はちゃんとスケールするようなアプリが作れたかの実験に
JMeterを利用しました。ある程度作りこんだ後だったので
JSONをやりとりするような形のスクリプトを用意して
アプリのユースケースを辿るような流れを作って、
とりあえずたくさんアクセスさせたらどうなるか、という形です。

クライアントPC一台から適当に(すみません、うろ覚えで)
アクセスを増やしたら20インスタンスまで増えることを確認
出来たので、概ね大丈夫だろうと見積もりました。

アクセスを一気にかけすぎると503か何かのエラーが戻っていた
ような気がします。


実際公開したアプリが泣かず飛ばずなんで、
自己満足に終わっているんですけどね(笑)

以上です。もしもお役に立てば幸いです。
Reply all
Reply to author
Forward
0 new messages