*

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>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>helloworld</title>
</head>
<body>
Hello world
</body>
</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のトップ画面」について調べてみましょう。

関連記事

Google App Engine Modules in Javaを試す WebToolsPlatform編

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

記事を読む

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

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

記事を読む

Datastoreの仕組み 〜Consistencyについて〜

はじめに スケーラビリティと可用性が高いと言われているGoogle Cloud Datastore

記事を読む

たった1つのCloud SQLインスタンスで複数のWordPressを動かす

皆様こんにちは。 前回はCloudSQLやCloud Storageを用いてWordpress

記事を読む

PaaS最前線!たったの15分でできるGAE/GO入門!

はじめに 2015年7月ついにGoogle App EngineのGO言語正式サポートが決定しまし

記事を読む

GAE負荷テスト その2「無料で何PVまで表示できるのか試してみた」

その1のアップからだいぶ日が経ってしまい、いつの間にか年すら変わっていましたね。。。 " GA

記事を読む

これで怖くない Datastore のトランザクション

”トランザクション” 聞いただけで嫌厭する方も少なくないのでは? Datastore のトランザ

記事を読む

Search API詳細解説 Part4「Search API 詳細 検索性能編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

たったの15分でできるGAE/GO入門 標準APIその1

知っておけば必ず開発が楽になる! GAE/Go入門の本連載ですが、前回は第一弾として「PaaS最前

記事を読む

GAEのスケーリング 前編 <仕組みについて>

今回は、こちらの公式ドキュメントをもとに、GAEのスケーリングの仕組みと最適化のやり方について紹介し

記事を読む

PAGE TOP ↑