GoogleCloudPlatformのフルマネージドのredis、Memorystoreの性能をredis-benchmarkで計測してみる


はじめに

AWSにはあるけれども、GCPに提供されていないものとして、かつてはフルマネージドなredisサービスが上げられていました。
けどそれも昔の話、GoogleCloudPlatformにもMemorystoreというフルマネージドなredisが提供されるようになっています。
(割とだいぶ前の話ではあるんですが……)

AWSのElasticCacheと比較して、どのぐらいの性能が出るのかなというのが気になったので、比較するためにも、まずはMemorystoreの性能を計測してみようと思います

記事的にはこの記事に近いかな!

測定の環境

構成図を書くような内容じゃないなぁ。

redisの設定

redisのバージョンは3.2、インスタンス容量は1GB、高可用性はカットしています。
ネットワークスループットはインスタンス容量によって上げるんですが、今回は最低限の1GBなので375MB/sです!

いざ実行

redis-benchmarkで各コマンドを500回、同時接続数を段々と増やしていく設定でやってみようと思います。

redis-benchmark -h 10.0.0.11 -p 6379 -c ここを変えていく -n 500 -q
同時接続数 10 25 50 100
PING_INLINE 25000.00 50000.00 41666.67 55555.56
PING_BULK 26315.79 55555.56 50000.00 55555.56
SET 27777.78 55555.56 62500.00 62500.00
GET 26315.79 50000.00 55555.56 62500.00
INCR 27777.78 50000.00 55555.56 62500.00
LPUSH 29411.76 50000.00 50000.00 71428.57
RPUSH 26315.79 50000.00 62500.00 55555.56
LPOP 27777.78 62500.00 55555.56 62500.00
RPOP 14285.71 62500.00 55555.56 55555.56
SADD 27777.78 50000.00 71428.57 62500.00
SPOP 25000.00 50000.00 55555.56 71428.57
LPUSH (needed to benchmark LRANGE) 26315.79 55555.56 38461.54 62500.00
LRANGE_100 (first 100 elements) 19230.77 35714.29 35714.29 41666.67
LRANGE_300 (first 300 elements) 11363.64 20000.00 16666.67 17241.38
LRANGE_500 (first 450 elements) 9090.91 12820.51 12820.51 11627.91
LRANGE_600 (first 600 elements) 7142.86 9803.92 9433.96 9433.96
MSET (10 keys) 22727.27 38461.54 45454.55 50000.00

数値はrequests per second、1秒にどれだけアクセスをさばけたかです!

そして、ここまで書いて気づいたんですが……
結果を比較しようにも比較元がないのでなんとも言えないという本末転倒っぷり。
更に各コマンドに対してそれぞれ一度しか計測してないので、なんか怪しい感じになっている気が……

次回へ続く

  • VM側が性能限界に引っかかると元も子もないので、問題になる前にもっとスペックを上げる
  • 同じコマンドでもそれぞれ何回か試してみて、平均結果で求めてみる
  • 手動でテーブルを作るのはめんどくさいから簡単なプログラムでも用意しよう
  • redisに書き込むデータの容量も比較してみる
  • AWSのElasticCacheと自分のmacbook proに構築したdocker環境でも同じことを試してみて比較しよう