*

専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する

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

GAEでMemcacheを利用した経験はありますでしょうか?

MemcacheとはGAEで利用可能な分散型のキャッシュシステムのことです。
主な利用目的はデータアクセスの高速化です。例えば、何度も同一クエリを実行する場合、最初の結果をMemcacheに保存し
それ以降はMemcache上のデータを取得することでデータストアへの無駄なアクセスを軽減させることができます。
(Memcache上にデータが存在しない場合は再度データストアでクエリを実行します。)

これまでMemcacheは無料版(共有Memcache)として公開されてきましたが
GAE 1.8.2から有料(プレビュー版)の「専用Memcache」がリリースされました。

この新しいMemcacheでは、最大20GBのキャッシュ容量(0.12ドル/GB/時)が保証され、プレビュー公開終了後には
これまでのMemchache(共有Memcache)にはなかったSLAも提供されると言われています。

ただ、この専用Memcacheは課金をしてまで必要となる割に合うサービスなのでしょうか?
今回は、この専用Memcacheが共有Memcacheよりも本当に優れているのかを検証してみました。

1. キャッシュ容量の比較

そもそもこれまで利用されてきた共有Memcacheは最大どの程度のキャッシュ容量があるのでしょうか?
また、専用Memcacheは本当に20GBも保存できるのでしょうか?

まずは共有Memchacheの容量を検証してみることにします。

1.1. 共有Memchacheの容量検証

1キーに対して約1.2KBの画像データをMemcacheに保存するプログラムをタスクキューで並列実行し、保存データ数と最大保存容量を計測してみました。GAE管理コンソールのMemcache Viewerで確認した結果は以下(画像1参照)の通りです。

画像1. 共有Memcacheの検証結果
検証の結果、データ総数は3,966,298で、保存容量はおよそ4.9GBとなりました。
想定以上のデータを保存することができましたが、共有Memcacheはデータ容量がSLAで保証されているわけではないため
データの消失は自己責任となります。そのため、共有Memcacheを利用する場合はデータが消えることが前提となるプログラムを実装する
必要があります。(GAE経験者としては常識的な話だとは思いますが…)

1.2. 専用Memchacheの容量検証

検証をおこなう前に、まずはMemcacheの利用クラスを専用Memcache用のクラスに切り替える必要があります。GAE管理コンソールの左メニューから「Application Settings」を選択し、Memcache Serviceのクラスを「Shared」から「Dedicated(10k ops/s/GB)」に変更します(画像2参照)。
クラスの変更が保存されると、専用Memcacheが有効となります。

※ クラス、または容量の数値を変更した場合、既に保存されているキャッシュデータは削除されますので注意してください。


画像2. 専用Memcacheへの切り替え
専用Memcacheへの切り替え完了後、1.1と同様のプログラムを実行し、保存データ数と総容量を計測してみました。
Memcache Viewerで確認した結果は以下の通りです。

画像3. 専用Memcacheの検証結果
検証の結果、データ総数は17,042,892で、総保存容量は約21.1GBとなりました。
最大20GBということでしたが、計測上は20GB以上の数値となりました。
これらの結果から、キャッシュ容量については、専用Memcacheの方が優れていることは確かなようです。

2. Memcacheへの書き込み・読み込み速度の計測

次に共有・専用Memcacheそれぞれの書き込み・読み込み速度の計測をおこないました。
保存データには1の検証で利用した1.2KBの画像データを利用しました。

2.1. MemcacheへのR・W速度の比較

検証として、共有・専用それぞれのMemcacheに対して、1,000件のデータの書き込み・読み込みをおこないました。
計測結果は以下(図1参照)の通りです。
※ 検証結果の数値は1000件のデータに対して1処理当たりの平均処理時間(ミリ秒)を表しています。

  共有Memcache 専用Memcache
キャッシュへの書き込み 85.946ms 69.9ms
キャッシュからの読み出し 7.497ms 5.017ms

表1. 共有・専用MemcacheのR・W速度検証結果

専用Memcacheの方がR・Wのいずれの値でも共有Memcacheを上回っていることがわかります。

3.まとめ

以上の検証の結果から、専用Memcacheはこれまで利用されていた共有Memcacheよりも性能がスケールアップしていることがわかりました。
ただし、専用Memcacheを利用する場合1GB毎に毎月$86.4の課金が発生することになります。制限があったとはいえ、これまで無料で利用していたAPIにそれだけの金額を払うのは割高に感じるかもしれません。とは言っても非常に強力なAPIであることには代わりはないので、もし要件として必要になった場合は見積りを立てて利用してみては如何でしょうか。

4. 次回の検証について

次回は、Memcacheの残存期間についての検証をおこなう予定です。1度保存されたデータが一体いつまで残存することができるのかを検証します。また、本サイトではMemcache以外の検証も随時おこなっていますので定期的にチェックしてみてください。

関連記事

Search API詳細解説 Part5「Search API 詳細 反映速度編」

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

記事を読む

PageSpeedの動作を検証

皆さん、こんにちは。 突然ですが、皆さんはPageSpeedというサービスをご存知でしょうか?

記事を読む

GCP愛を語る

RGCP(GCP好き以外お断り) 技術的な話ばかりの中のAdventCalendarですが、本

記事を読む

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

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

記事を読む

Search API詳細解説 Part3「Search APIの使い方 検索編」

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

記事を読む

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

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

記事を読む

Search API詳細解説 Part2「Search APIの使い方 登録・削除編」

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

記事を読む

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

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

記事を読む

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

TwitterやFacebookのような有名サービスと連携したアプリを開発する場合、開発者は

記事を読む

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

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

記事を読む

PAGE TOP ↑