日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Redis開源版、Redis倚天版、Tair內(nèi)存型性能白皮書

本文介紹Tair內(nèi)存型、Redis開源版Redis倚天版的性能測試結(jié)果,以及測試環(huán)境、測試工具與測試方法。

測試結(jié)果

對包括SET、GET等在內(nèi)的十余種Redis基礎(chǔ)命令進行性能測試并給出測試指標。

命令

Tair內(nèi)存型

Redis開源版

Redis倚天版

QPS

Average Latency

99th Percentile Latency

QPS

Average Latency

99th Percentile Latency

QPS

Average Latency

99th Percentile Latency

SET

282,656

0.45

0.86

142,376

0.45

0.72

126,493

0.50

1.01

GET

519,761

0.24

0.36

204,690

0.31

0.47

201,492

0.31

0.53

ZADD

208,169

0.62

1.14

113,135

0.57

0.78

90,046

0.71

1.44

ZSCORE

463,904

0.27

0.40

170,163

0.37

0.54

172,508

0.37

0.68

HSET

260,069

0.49

1.03

124,613

0.51

0.97

116,706

0.54

1.12

HGET

494,603

0.25

0.37

188,903

0.34

0.52

175,461

0.36

0.64

LPUSH

286,324

0.44

0.84

153,269

0.42

0.59

129,188

0.49

0.96

LINDEX

414,070

0.30

0.45

157,568

0.40

0.58

154,444

0.41

0.76

SADD

292,738

0.44

0.86

140,155

0.45

0.63

126,199

0.50

0.99

SISMEMBER

531,139

0.24

0.34

181,492

0.35

0.52

211,807

0.30

0.47

EVALSHA

214,303

0.60

1.12

101,136

0.63

0.91

76,659

0.84

2.09

測試指標說明:

  • QPS:每秒處理的讀寫操作數(shù),單位為次/秒。

  • Average Latency:操作的平均延遲時間,單位為毫秒(ms)。

  • 99th Percentile Latency:99%操作延遲,指99%操作的最大延遲時間,單位為毫秒(ms)。例如該指標的值為0.5毫秒,表示99%的請求可以在0.5毫秒內(nèi)被處理。

說明
  • 測試結(jié)果為在多個可用區(qū)、對多個實例、進行多次測試的平均值。

  • 測試結(jié)果中的延遲為全鏈路延遲,包含數(shù)據(jù)包在DB側(cè)及壓測端排隊的時延。

  • 測試結(jié)果受到多種不可控因素的影響,存在約10%的誤差屬于合理范圍。

  • 測試結(jié)果僅代表新購實例進行單一命令測試的結(jié)果,而生產(chǎn)環(huán)境實例的壓力測試請以業(yè)務(wù)壓測場景為準。

  • 測試結(jié)果反映了實例的極限性能,在生產(chǎn)環(huán)境中,不建議將實例維持在極限負載狀態(tài)。

測試環(huán)境

數(shù)據(jù)庫

測試環(huán)境信息

說明

地域和可用區(qū)

華北2(北京)可用區(qū)L、華東1(杭州)可用區(qū)K、華東2(上海)可用區(qū)N、華南1(深圳)可用區(qū)C。

說明

本測試在多個地域進行,本測試報告僅代表上述可用區(qū)的平均性能水平。

實例架構(gòu)

標準架構(gòu)(雙副本),不啟用集群,詳情請參見標準架構(gòu)

說明

其他架構(gòu)的性能說明:

  • 集群架構(gòu)代理模式:當請求的Key分布均勻時,其性能不低于標準架構(gòu)的n倍。

  • 集群架構(gòu)直連模式:當請求的Key分布均勻時,其性能等于標準架構(gòu)的n倍。

  • 讀寫分離架構(gòu):寫性能略低于標準架構(gòu)(因為有更多的復(fù)制流量),讀性能不低于標準架構(gòu)的n倍。

n為集群架構(gòu)的分片節(jié)點數(shù)或讀寫分離架構(gòu)的總節(jié)點數(shù)。

實例規(guī)格

由于測試結(jié)果受規(guī)格影響較小,本次測試以下實例規(guī)格:

  • Tair內(nèi)存型8 GB(tair.rdb.8g)

  • Redis開源版8 GB(redis.shard.xlarge.ce)

  • Redis倚天版8 GB(redis.shard.xlarge.y.ee)

規(guī)格詳情請參見規(guī)格查詢導(dǎo)航

測試客戶端

測試環(huán)境信息

說明

部署壓測工具的設(shè)備

云服務(wù)器ECS實例,規(guī)格為ecs.g7.8xlarge,詳情請參見實例規(guī)格族

地域和可用區(qū)

與實例對應(yīng)的地域及可用區(qū)。

操作系統(tǒng)

Alibaba Cloud Linux 3。

網(wǎng)絡(luò)

Tair實例為相同專有網(wǎng)絡(luò)(VPC),且與Tair實例通過專有網(wǎng)絡(luò)連接。

測試工具

使用resp-benchmark開源工具進行壓測。SET、GET等常規(guī)測試項與redis-benchmark保持一致,在其余測試項中可以更有效地模擬用戶真實場景,壓滿Tair多個線程,從而體現(xiàn)Tair的實際性能。

說明

您可以執(zhí)行resp-benchmark --help命令獲取更詳細的配置項說明,或訪問其GitHub主頁。

安裝方法

pip install resp-benchmark==0.1.7

測試示例

重要
  • 每次測試時建議先清空數(shù)據(jù)庫,避免已有數(shù)據(jù)存在干擾。

  • resp-benchmark在未指定連接數(shù)時會自動選擇相對合適的連接數(shù),為測得極限負載下的數(shù)據(jù)建議手動調(diào)整連接數(shù),比如設(shè)置為128,可以通過增加參數(shù)-c 128實現(xiàn)。連接數(shù)過低時,測試壓力不足,導(dǎo)致QPS數(shù)據(jù)偏低;連接數(shù)過高時,測試壓力可能會超過DB的處理能力,數(shù)據(jù)包會在網(wǎng)絡(luò)鏈路中排隊較長時間,導(dǎo)致延遲數(shù)據(jù)偏高。因為影響因素較多,難以在下文中給出固定的連接數(shù)配置,常見的連接數(shù)設(shè)置為32、64、128、192和256,可根據(jù)實際測試情況自行調(diào)整。

以下為各命令的測試實例:

  • SET

    該指標代表SET命令的性能。

    測試SET命令,Key范圍為0-10000000(表示生成的Key名稱為key_0000000000~key_0009999999),Value大小為64字節(jié),測試時長20秒:

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SET {key uniform 10000000} {value 64}"
  • GET

    該指標代表GET命令的性能。

    1. 構(gòu)造數(shù)據(jù),Key范圍為0-10000000,Value大小為64字節(jié):

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "SET {key sequence 10000000} {value 64}"
    2. 測試GET命令,測試時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "GET {key uniform 10000000}"
  • ZADD

    該指標代表ZADD命令的性能。

    測試ZADD的寫性能,Key范圍為0-1000,Score范圍為0-70000,每個Key最多10000個Field,測試時長20秒:

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 "ZADD {key uniform 1000} {rand 70000} {key uniform 10000}"
  • ZSCORE

    該指標代表ZSCORE命令的性能。

    1. 構(gòu)造數(shù)據(jù),Key范圍為0-1000,Score范圍為0-70000,每個Key最多10007個Field:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "ZADD {key sequence 1000} {rand 70000} {key sequence 10007}"
    2. 測試ZSCORE命令,測試時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "ZSCORE {key uniform 1000} {key uniform 10007}"
  • HSET

    該指標代表HSET命令的性能。

    測試HSET命令,Key范圍為0-1000,F(xiàn)ield范圍為0-10000,Value大小為64字節(jié),測試時長20秒:

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HSET {key uniform 1000} {key uniform 10000} {value 64}"
  • HGET

    該指標代表HGET命令的性能。

    1. 構(gòu)造數(shù)據(jù),Key范圍為0-1000,每個Key包含10007個Field,數(shù)據(jù)大小為64字節(jié):

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "HSET {key sequence 1000} {key sequence 10007} {value 64}"
    2. 測試HGET命令,測試時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HGET {key uniform 1000} {key uniform 10007}"
  • LPUSH

    該指標代表LPUSH命令的性能。

    測試LPUSH命令,Key范圍為0-1000,Value大小為64字節(jié),測試時長20秒:

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LPUSH {key uniform 1000} {value 64}"
  • LINDEX

    該指標代表LINDEX命令的性能。

    1. 構(gòu)造數(shù)據(jù),Key范圍為0-1000,每個Key包含10000條數(shù)據(jù),數(shù)據(jù)大小為64字節(jié):

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "LPUSH {key sequence 1000} {value 64}"
    2. 測試LINDEX命令,測試時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LINDEX {key uniform 1000} {rand 10000}"
  • SADD

    該指標代表SADD命令的性能。

    測試SADD命令,Key范圍為0-1000,Value大小為64字節(jié),測試時長20秒:

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SADD {key uniform 1000} {value 64}"
  • SISMEMBER

    該指標代表SISMEMBER命令的性能。

    1. 構(gòu)造數(shù)據(jù),Key范圍為0-1000,每個Key包含10007條數(shù)據(jù),數(shù)據(jù)大小為64字節(jié):

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "SADD {key sequence 1000} {key sequence 10007}"
    2. 測試SISMEMBER命令,測試時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SISMEMBER {key uniform 1000} {key uniform 10007}"
  • EVALSHA

    該指標代表在EVALSHA中執(zhí)行SET命令的性能,其中SET命令的Key范圍為0-10000000,Value大小為64字節(jié)。

    1. 載入Lua腳本:

      redis-cli -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
    2. 測試命令時長20秒:

      resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "EVALSHA d8f2fad9f8e86a53d2a6ebd960b33c4972cacc37 1 {key uniform 10000000} {value 64}"