*

GAE負荷テスト その1「Hello World!」

公開日: : 最終更新日:2015/11/05 投稿者: GAE

2011年11月にGAEのプレビューが終わり、早数ヶ月経ちました。
これからGAEでの開発に乗り出す企業様、個人の方との情報共有も兼ねまして、無料枠でどこまで
使えるのか気になったので、無料枠と課金の問題について調査したいと思います。
調査は大きく分けて3回行ないたいと思います。

  • その1 Hello World
    プログラミングをやっている方には定番中の定番ですね。
    ここでは単純にHello worldと表示されるページに対してリクエストを3パターンに分けて実行します。
  • その2 吉積情報株式会社のダミーHPのトップ画面
    一般的な企業のホームページをGAE上で運用した場合、どれだけのアクセスに耐えられるのか、実際に弊社のダミーホームページを使って試してみましょう。
  • その3 掲示板への書込と出力
    最後に実践的なものの例として、掲示板への書込と書込結果の出力(最新10件)をGAE上でどれほどの負荷がかかるのか、調べてみたいと思います。

前述した通り、調査第1回目はHello world のページへのリクエストです。
ページのソースは、以下になります。
[html]
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>helloworld</title>
</head>
<body>
Hello world
</body>
</html>
[/html]

テストパターンは下記の3種類です。
使用したツール : jakarta-jmeter-2.5.1

パターン 同時リクエスト数 ループ数 総アクセス数
1 15 20000 300000
2 30 20000 600000
3 60 20000 1200000

リスエストの処理結果は、jmetaのログから3パターンの全リクエストはHTTPステータス200で処理が完了しました。

リソースの利用状況は、GAEの管理コンソールから確認できます。
管理コンソールの左メニュー「Billing」の「Billing History」をクリックしてください。
課金のあるなしに関わらず、一日ごとに記録が取られていますので、確認したい日付の「Usage Report」をクリックしてください。

「Usage Report」をクリックすると、その日の課金状況の詳細が確認できます。

縦の、「Resource」は、課金対象になっているリソースの項目です。各リソースの項目の下には、単位あたりにかかる金額が書いてあります。
横の、「Used」は使用したリソース量、「Free」は無料枠で使用できるリソース量、「Billable」は無料枠を超えて課金対象になったリソース量、
「Charge」は実際に請求される金額が表示されます。
詳細画面の説明はひとまずここまでにして、次はいよいよ負荷テストの結果についてです。

パターン1 「15スレッド/20000ループ」

  • 全リクエスト完了時間 : 7時間33分50秒
  • リクエスト完了結果 : 全リクエスト、ステータス200


Frontend Instance Hoursが8.69ですか。。。Frontend Instanceの立ち上がり時間はリスエスト時間に比例するはずですので、全リクエスト完了時間の
7時間33分50秒に対しては少し多い感じしますね。

パターン2「30スレッド/20000ループ」

  • 全リクエスト完了時間 : 8時間4分6秒
  • リクエスト完了結果 : 全リクエスト、ステータス200


今度はFrontend Instance Hoursが8.68。。。パターン1よりも多くのスレッドを立てて実行しましたが、使用したFrontend Instance Hoursはパターン1と同じくらいですね。キャッシュが効いてて、これ以上のFrontend Instanceは立ち上がらないのかもしれませんね。
しかし、Bandwidth Outも変わらないのはちょっと考えものかもしれません。。。スレッド数を倍にしたんですから、こちらは増えてもいいかなと思うのですが。。。

パターン3「60スレッド/20000ループ」

  • 全リクエスト完了時間 : 7時間26分38秒
  • リクエスト完了結果 : 全リクエスト、ステータス200


最後のパターン3ですが、Frontend Instance Hoursが8.37。。。一番少ないですね。。。全リクエスト完了時間も一番短いですね。
本来なら一番Frontend Instance Hoursと全リクエスト完了時間がかかるはずなんですが。。。
Bandwidth Outが0.07とパターン1、2よりも増えていて、これは予想通りでした。

今回のテストで最も注目して欲しい点は、Frontend Instance Hoursです。
これはリクエストに対して、インスタンスを生成するたびに増えていきます。

意外にもFrontend Instance Hoursには大きな差もなく、全リクエストがステータス200で終了しました。
現実ではhello worldだけなんていうことはないかと思いますが、今回の結果から15スレッドでも60スレッドでも変わりませんので、
十分無料枠でいけますね。

今回のテストですが、JMeterのログで全リクエスト数は確認したものの、スレッド数が倍違うパターン1とパターン2のBandwidth Outが
同じ0.04というのが気になります。。。
もしかしたら、失敗しているのかもしれません。。。

次回は、「吉積情報株式会社のダミーHPのトップ画面」について調べてみましょう。

関連記事

1つのエンティティにプロパティをいくつまで作れるか

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

Google App Engine Modules in Javaを試す WebToolsPlatform編

みなさんこんにちは。 2013年の7月に、Google App Engine1.8.2がリリー

記事を読む

東京リージョンによってGAEの速度は早くなったのか!?

ついにGAEに東京リージョンが新設されました!!サービス開始からGAEを触れていたユーザにと

記事を読む

AppEngineでTwilioを試してみた(基本編)

AppEngineでTwilioを試してみた(基本編) AppEngineでTwilioを試し

記事を読む

Search APIの「Faceted Search」を使ってみた

Search API詳細解説シリーズは完結しましたが、2015年2月19日のAppEngine SD

記事を読む

AppEngineでTwilioを試してみた(応用編)

AppEngineでTwilioを試してみた(基本編) AppEngineでTwilioを試し

記事を読む

apps-gcp 2017年1-3月人気記事ランキング

今回のapps-gcpは2017年1~3月の人気記事ランキングです。去年までは月毎でのランキ

記事を読む

GAEのautomatic scalingとbasic scalingを徹底比較!!

Google App Engine(以下GAE)(※1)は、GCPユーザならば言わずと知れた

記事を読む

GAE/GOでTwitter Botを作ってみる~後編~

今回のapps-gcpは「GAE/GOでTwitter Botを作ってみる」の後編記事です。

記事を読む

App Engine for PHP ベータ版から正式版へ

GCPBlogの記事によると App Engine for PHP(PHPアプリをGoogle Ap

記事を読む

PAGE TOP ↑