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