Edited at

EC2 RedisのMeltdown/Spectreパッチバージョン性能検証

More than 1 year has passed since last update.

Meltdownの脆弱性対応により軒並みサーバの性能が低下しているようです。

MeltdownとかSpectreとか騒ぎがあったので、Amazon Aurora(MySQL互換)R4インスタンス再テスト(mysqlslap)

自分はRedisを使い倒していることもあり、Redisでどの程度性能に影響がありそうかを実際に検証してみました。


環境

項目
OS
kernel version
redis version
インスタンスタイプ

旧OS
Amazon Linux
4.9.58-18.55.amzn1.x86_64
v2.8.24
c4.large

最新OS
Amazon Linux
4.9.75-25.55.amzn1.x86_64
v2.8.24
c4.large

Redis少し古くてすみません…


ベンチマークコマンド

バンドルされているredis-benchmarkコマンドを利用して以下の軸で実行してみました。

# default

redis-benchmark
# setのみ100万回実行
redis-benchmark -t set -n 1000000 -r 100000000
# 100万個のランダム要素のリストを実行
redis-benchmark -r 1000000 -n 1000000 1 lpush mylist __rand_int__
# データサイズ1024byteで、3万リクエストを100クライアントで実行
redis-benchmark -d 1024 -n 30000 -r 30000 -c 100 -q


ベンチマーク結果

フルの実行結果は以下を参照下さい。


結果抜粋

# データサイズ1024byteで、3万リクエストを100クライアントで実行

redis-benchmark -d 1024 -n 30000 -r 30000 -c 100 -q

このベンチマークがまんべんなく実行されているので比較してみましょう

コマンド
パッチ適用後(rps)
パッチ適用前(rps)
性能比(%)

PING_INLINE
103092.78
123966.95
83.16

PING_BULK
101694.92
121457.49
83.72

SET
98039.22
111524.16
87.90

GET
97402.60
116279.08
83.76

INCR
103448.28
125000.00
82.75

LPUSH
100334.45
126050.41
79.59

LPOP
97087.38
119521.92
81.22

SADD
102739.73
124481.33
82.53

SPOP
101351.35
123966.95
81.75

LPUSH (needed to benchmark LRANGE)
100671.14
125523.02
80.20

LRANGE_100 (first 100 elements)
8949.88
9930.49
90.12

LRANGE_300 (first 300 elements)
2767.02
2904.44
95.26

LRANGE_500 (first 450 elements)
1395.22
1776.72
78.52

LRANGE_600 (first 600 elements)
1064.43
1134.52
93.82

MSET (10 keys)
38022.82
43988.27
86.43

パッチ適用後はやはり軒並み性能劣化しているようですね…

ちなみに何度か実行したり、別インスタンスで試してみても多少の上下はありましたが同じような結果になりました。


まとめ

どこかで「10% - 20%落ち」というのは目にしましたが、実際にそんな感じでした。

割とキリキリの性能で使うことが多いのでだいぶ辛い ;q