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

  • このエントリーをはてなブックマークに追加

ご注意

この記事は 2014年3月25日 に書かれたものです。内容が古い可能性がありますのでご注意ください。

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のトップ画面」について調べてみましょう。

  • このエントリーをはてなブックマークに追加

Google のクラウドサービスについてもっと詳しく知りたい、直接話が聞いてみたいという方のために、クラウドエースでは無料相談会を実施しております。お申し込みは下記ボタンより承っておりますので、この機会にぜひ弊社をご利用いただければと思います。

無料相談会のお申込みはこちら