作成したredisでベンチマーク圧力テストを実行する場合は、redisのパフォーマンスとQPS(クエリ/秒)をテストします
Redis独自のredis-benchmark圧力測定ツールが最も速くて便利です。もちろん、このツールは比較的単純です。いくつかの単純な操作とシナリオを使用して圧力テストを行います
1. Redis読み取り/書き込み分離アーキテクチャ、単一インスタンス書き込みQPS +単一インスタンス読み取りQPSで圧力テストを実行します
redis-3.2.8 / src
./redis-benchmark -h 192.168.31.187
-c <clients>並列接続の数(デフォルト50)
-n <requests>リクエストの総数(デフォルト100000)
-d <size> SET / GET値のデータサイズ(デフォルト2)
あなた自身のピーク訪問によると、ピーク期間中、ユーザーの瞬間最大数は100,000 +、-c 100000、-n 10000000、-d 50に達します
./redis-benchmark -c 1000 -n 1000 -d 50
さまざまなベンチマーク、直接出てくる
1コア1G、仮想マシン
====== PING_INLINE ======
1.28秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
99.78%<= 1ミリ秒
99.93%<= 2ミリ秒
99.97%<= 3ミリ秒
100.00%<= 3ミリ秒
78308.54リクエスト/秒
====== PING_BULK ======
1.30秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
99.87%<= 1ミリ秒
100.00%<= 1ミリ秒
76804.91リクエスト/秒
====== SET ======
2.50秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
5.95%<= 1ミリ秒
99.63%<= 2ミリ秒
99.93%<= 3ミリ秒
99.99%<= 4ミリ秒
100.00%<= 4ミリ秒
40032.03リクエスト/秒
====== GET ======
1.30秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
99.73%<= 1ミリ秒
100.00%<= 2ミリ秒
100.00%<= 2ミリ秒
76628.35リクエスト/秒
====== INCR ======
1.90秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
80.92%<= 1ミリ秒
99.81%<= 2ミリ秒
99.95%<= 3ミリ秒
99.96%<= 4ミリ秒
99.97%<= 5ミリ秒
100.00%<= 6ミリ秒
52548.61リクエスト/秒
====== LPUSH ======
2.58秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
3.76%<= 1ミリ秒
99.61%<= 2ミリ秒
99.93%<= 3ミリ秒
100.00%<= 3ミリ秒
1 秒あたり38684.72リクエスト
====== RPUSH ======
2.47秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
6.87%<= 1ミリ秒
99.69%<= 2ミリ秒
99.87%<= 3ミリ秒
99.99%<= 4ミリ秒
100.00%<= 4ミリ秒
40469.45リクエスト/秒
====== LPOP ======
2.26秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
28.39%<= 1ミリ秒
99.83%<= 2ミリ秒
100.00%<= 2ミリ秒
44306.60 秒あたりのリクエスト
====== RPOP ======
2.18秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
36.08%<= 1ミリ秒
99.75%<= 2ミリ秒
100.00%<= 2ミリ秒
45871.56リクエスト/秒
====== SADD ======
1.23秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
99.94%<= 1ミリ秒
100.00%<= 2ミリ秒
100.00%<= 2ミリ秒
81168.83リクエスト/秒
====== SPOP ======
1.28秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
99.80 %<= 1ミリ秒99.96%<= 2ミリ秒
99.96%<= 3ミリ秒
99.97%<= 5ミリ秒
100.00%<= 5ミリ秒
78369.91リクエスト/秒
====== LPUSH(LRANGEのベンチマークが必要)======
2.47秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
15.29%<= 1ミリ秒
99.64%<= 2ミリ秒
99.94%<= 3ミリ秒
100.00%<= 3ミリ秒
40420.37リクエスト/秒
====== LRANGE_100(最初の100要素)======
3.69秒で完了した100000リクエスト
50並列クライアント
3バイトペイロード
キープアライブ:1
30.86%<= 1ミリ秒
96.99%<= 2ミリ秒
99.94%<= 3ミリ秒
99.99%<= 4ミリ秒
100.00%<= 4ミリ秒
27085.59リクエスト/秒
====== LRANGE_300(最初の300要素)======
10.22秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
0.03%<= 1ミリ秒
5.90%<= 2ミリ秒
90.68%<= 3ミリ秒
95.46%<= 4ミリ秒
97.67%<= 5ミリ秒
99.12%<= 6ミリ秒
99.98%<= 7ミリ秒
100.00%<= 7ミリ秒
9784.74リクエスト毎秒
====== LRANGE_500(最初の450要素)======
14.71秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
0.00%<= 1ミリ秒
0.07%<= 2ミリ秒
1.59%<= 3ミリ秒
89.26%<= 4ミリ秒
97.90%<= 5ミリ秒
99.24%<= 6ミリ秒
99.73%<= 7ミリ秒
99.89%<= 8ミリ秒
99.96% <= 9ミリ秒
99.99%<= 10ミリ秒
100.00%<= 10ミリ秒
6799.48リクエスト/秒
====== LRANGE_600(最初の600要素)======
18.56秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
0.00%<= 2ミリ秒
0.23%<= 3ミリ秒
1.75%<= 4ミリ秒
91.17%<= 5ミリ秒
98.16%<= 6ミリ
秒
99.04%<= 7ミリ秒99.83%<= 8ミリ秒
99.95%<= 9ミリ秒
99.98% <= 10ミリ秒
100.00%<= 10ミリ秒
5387.35リクエスト/秒
====== MSET(10キー)======
4.02秒で完了した100000リクエスト
50の並列クライアント
3バイトのペイロード
キープアライブ:1
0.01%<= 1ミリ秒
53.22%<= 2ミリ秒
99.12%<= 3ミリ秒
99.55%<= 4ミリ秒
99.70%<= 5ミリ秒
99.90%<= 6ミリ秒
99.95%<= 7ミリ秒
100.00%<= 8ミリ秒
24869.44リクエスト毎秒
読み書きの分離に関する最初の講義
ほとんどの場合、サーバーのマシンのパフォーマンスと構成に応じて、マシンが強力になるほど構成が高くなります
1台のマシンで10万台、1台のマシンで20万台
多くの企業では、低構成サーバーの場合、操作が複雑です
大企業では、すべての企業がJD、Tencent、BAT、その他、Xiaomi、Meituanなどの統合クラウドプラットフォームを提供します
仮想マシン、低構成
いくつかのクラスター、特定のプロジェクト用に構築された特別なクラスター、4コア4Gメモリ、より複雑な操作、より大きなデータを構築する
数万、それは単一のマシンで行うことができ、ほぼ
redisによって提供される高い並行性、少なくとも数万まで、問題なし
数万から数十万/ 200,000
QPS、異なる会社、異なるサーバー、自分でテスト、本番環境とは異なります
本番環境、多数のネットワークリクエストコール、ネットワーク自体にオーバーヘッドがあり、Redisスループットが必ずしもそれほど高くない
QPSの2つのキラー:1つは複雑な操作、lrange、かなり多くの値です;値は非常に大きく、2バイトです。大規模なキャッシュとしてredisを使用しました
製品の詳細ページをキャッシュするには、大きなデータ文字列をjson文字列としてつなぎ合わせる必要がある場合があります。サイズは数k、数バイトになる場合があります
2.スループットを改善するためにredis読み取りノードを水平方向に拡張します
前のレッスンで説明したように、他のサーバーにredisスレーブノードを構築します。単一のスレーブノードは、約50,000でQPSを読み取ります。2つのredisスレーブノード。すべての読み取りリクエストは、クラスター全体をホストする2台のマシンに送信されます。 100,000以上でQPSを読み取る