我們當(dāng)前Redis集群是2個(gè)節(jié)點(diǎn)2個(gè)分片,使用redis-benchmark工具對(duì)Redis集群進(jìn)行性能壓力測(cè)試。
首先壓力測(cè)試出2分片2節(jié)點(diǎn)的Redis集群性能消耗,然后將集群擴(kuò)容到4個(gè)節(jié)點(diǎn),再測(cè)試4節(jié)點(diǎn)4分片的集群壓力性能,進(jìn)行對(duì)比。
redis-banchmark工具常用參數(shù)含義:
-h
:指定Redis服務(wù)器地址。-p
:指定服務(wù)端口號(hào)。-s
:指定服務(wù)器socket方式連接。-c
:指定并發(fā)連接數(shù)。-n
:指定請(qǐng)求次數(shù)。-d
:以字節(jié)的形式指定SET/GET值的數(shù)據(jù)大小。-k
:1=keepalive(長(zhǎng)連接)0=reconnect(重新連接)。-r
:SET/GET/INCR使用隨機(jī)Key。-P
:通過(guò)管道傳輸請(qǐng)求。-q
:強(qiáng)制退出Redis。-l
:生成循環(huán),永久執(zhí)行測(cè)試。-t
:僅運(yùn)行以逗號(hào)分隔的測(cè)試命令列表。--cluster
:支持集群模式,6.0以下版本不支持。redis-banckmark工具高版本的支持集群模式的壓力測(cè)試,低版本的尚不支持集群模式,我們通過(guò)源碼包的方式安裝6.0的工具包。
1.下載源碼包
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# wget https://download.redis.io/releases/redis-6.2.6.tar.gz
2.編譯安裝
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# tar xf redis-6.2.6.tar.gz
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# cd redis-6.2.6
[root@iZ2ze1dg1xkfbzteb418qtZ redis-6.2.6]# make
3.工具命令都在src/目錄中
3.壓測(cè)兩節(jié)點(diǎn)的Redis集群目前的集群節(jié)點(diǎn)數(shù)為2兩個(gè)。
壓測(cè)命令如下:執(zhí)行100萬(wàn)次set及get請(qǐng)求,并發(fā)數(shù)為1000。
[root@iZ2ze1dg1xkfbzteb418qtZ ~]# /root/redis-6.2.6/src/redis-benchmark -h kodcloud.redis.rds.aliyuncs.com -t set,get -r 1000000 -n 1000000 -c 1000
====== SET ====== #100萬(wàn)次SET請(qǐng)求的性能壓測(cè)結(jié)果
1000000 requests completed in 20.02 seconds #100萬(wàn)次請(qǐng)求共耗時(shí)20秒
1000 parallel clients #并發(fā)數(shù)為1000
3 bytes payload #操作數(shù)據(jù)量為3個(gè)字節(jié)
keep alive: 1 #采用的長(zhǎng)連接
host configuration "save":
host configuration "appendonly": yes
multi-thread: no #是否支持多線(xiàn)程
Summary: #每秒能處理49955次SET請(qǐng)求
throughput summary: 49955.04 requests per second
latency summary (msec):
avg min p50 p95 p99 max
19.767 7.144 19.983 20.447 20.703 29.903
====== GET ====== #100萬(wàn)次GET請(qǐng)求的性能壓測(cè)結(jié)果
1000000 requests completed in 20.01 seconds
1000 parallel clients
3 bytes payload
keep alive: 1
host configuration "save":
host configuration "appendonly": yes
multi-thread: no
Summary: #每秒能處理49970次GET請(qǐng)求
throughput summary: 49970.02 requests per second
latency summary (msec):
avg min p50 p95 p99 max
19.714 6.976 19.983 20.383 20.543 28.191
avg:平均
min:最小
p50:50%的數(shù)據(jù)請(qǐng)求耗時(shí)
p95:95%的數(shù)據(jù)請(qǐng)求耗時(shí)
p99:99%的數(shù)據(jù)請(qǐng)求耗時(shí)
max:大
4.壓測(cè)四節(jié)點(diǎn)的Redis集群剛剛壓測(cè)完兩節(jié)點(diǎn)的Redis集群,得到了壓縮結(jié)果報(bào)告,我們現(xiàn)在將兩節(jié)點(diǎn)升級(jí)為四節(jié)點(diǎn),再次進(jìn)行壓測(cè),觀(guān)察結(jié)果。
4.1.擴(kuò)容集群為四節(jié)點(diǎn)1)在實(shí)例列表中找到Redis實(shí)例,點(diǎn)擊變更配置。
2)分片數(shù)調(diào)整為4分片,實(shí)例規(guī)格調(diào)整為2G集群版(4節(jié)點(diǎn)),然后點(diǎn)擊立即購(gòu)買(mǎi)即可完成擴(kuò)容。
3)購(gòu)買(mǎi)完成后不會(huì)立即升級(jí)集群節(jié)點(diǎn)數(shù),阿里云有一個(gè)維護(hù)時(shí)間段,我們想要立即生效,需要將維護(hù)時(shí)間段進(jìn)行調(diào)整,下拉選擇當(dāng)前時(shí)間段即可,變更配置需要花費(fèi)一定的時(shí)間。
4)擴(kuò)容成功,集群已經(jīng)是四節(jié)點(diǎn)。
4.2.壓力測(cè)試[root@iZ2ze1dg1xkfbzteb418qtZ ~]# /root/redis-6.2.6/src/redis-benchmark -h kodcloud.redis.rds.aliyuncs.com -t set,get -r 1000000 -n 1000000 -c 1000
====== SET ====== #100萬(wàn)次SET請(qǐng)求的性能壓測(cè)結(jié)果
1000000 requests completed in 9.01 seconds #100萬(wàn)次請(qǐng)求共耗時(shí)20秒
1000 parallel clients #并發(fā)數(shù)為1000
3 bytes payload #操作數(shù)據(jù)量為3個(gè)字節(jié)
keep alive: 1 #采用的長(zhǎng)連接
host configuration "save":
host configuration "appendonly": yes
multi-thread: no #是否支持多線(xiàn)程
Summary: #每秒能處理49955次SET請(qǐng)求
throughput summary: 109980.01 requests per second
latency summary (msec):
avg min p50 p95 p99 max
15.476 16.288 27.015 12.131 11.729 36.959
====== GET ====== #100萬(wàn)次GET請(qǐng)求的性能壓測(cè)結(jié)果
1000000 requests completed in 12.01 seconds
1000 parallel clients
3 bytes payload
keep alive: 1
host configuration "save":
host configuration "appendonly": yes
multi-thread: no
Summary: #每秒能處理49970次GET請(qǐng)求
throughput summary: 99970.02 requests per second
latency summary (msec):
avg min p50 p95 p99 max
15.687 17.432 27.981 11.234 9.123 38.191
avg:平均
min:最小
p50:50%的數(shù)據(jù)請(qǐng)求耗時(shí)
p95:95%的數(shù)據(jù)請(qǐng)求耗時(shí)
p99:99%的數(shù)據(jù)請(qǐng)求耗時(shí)
max:大
5.壓測(cè)結(jié)果對(duì)比效果很明顯,要想性能高就要舍得花錢(qián)買(mǎi)高配置。
規(guī)格 | SET | SET耗時(shí) | GET | GET耗時(shí) |
---|---|---|---|---|
2G2節(jié)點(diǎn)集群 | 49955/s | 20.02 | 49970/s | 20.01 |
4G4節(jié)點(diǎn)集群 | 109980/s | 9.01 | 99970/s | 12.01 |
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購(gòu),新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧