全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):磁碟(SSD)型效能白皮書

更新時間:Sep 29, 2026

本文介紹Tair(企業版)磁碟(SSD)型效能測試的測試環境、測試載入器、測試方法與測試結果。

測試環境

測試環境資訊

說明

地區和可用性區域域

所有測試均在華東1(杭州)地區的可用性區域J中完成。

Redis執行個體架構

標準版(雙副本)架構,詳情請參見標準架構。

部署壓測工具的機器

Elastic Compute Service執行個體,規格為ecs.c9i.8xlarge,規格詳情請參見執行個體規格類型系列。

磁碟(SSD)型執行個體規格

  • tair.localssd.c1m8.xlarge

  • tair.localssd.c1m8.2xlarge

  • tair.localssd.c1m8.with.proxy.xlarge(3分區)

  • tair.localssd.c1m8.with.proxy.2xlarge(3分區)

測試主要針對下述兩種情境進行:

  • 記憶體大於資料情境:絕大部分資料可以在記憶體中訪問到,此情境下記憶體與資料的比例約為7:1。

  • 資料大於記憶體情境:只有部分資料緩衝在記憶體,部分訪問請求需要讀取硬碟中的資料,根據負載不同,需要訪問磁碟的比例也不一樣,此情境下記憶體與資料的比例約為1:4。

測試載入器

採用開源社區的YCSB壓測工具進行壓測。YCSB是一款Java編寫的支援多種資料庫的效能測試工具,具體安裝和使用方法請參見YCSB。

本測試中,對YCSB的相關內容做了一定的修改,使其支援匯入long類型的recordcount參數、支援測試Redis的String相關命令,修改後的完整原始碼請參見YCSB源碼。

測試命令

下述指令碼以資料大於記憶體情境為例。

#! /bin/bash

ip=192.168.0.23
port=3100
timeout=30000
command_group=string
recordcount=640000000
run_operationcount=640000000
fieldcount=1
fieldlength=100
threads=64
load_sleep_time=600
run_sleep_time=60

echo "##################################### $command_group  ############################################"
#Load
./bin/ycsb load redis -s -P workloads/workloada -p "redis.host=${ip}" -p  "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${recordcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -threads ${threads}
sleep ${load_sleep_time}

#Uniform-Read
./bin/ycsb run redis -s -P workloads/workloadc  -p "redis.host=${ip}" -p  "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=uniform" -threads ${threads}
sleep ${run_sleep_time}

#Zipfian-Read
./bin/ycsb run redis -s -P workloads/workloadc  -p "redis.host=${ip}" -p  "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=zipfian" -threads ${threads}
sleep ${run_sleep_time}

#Uniform-50%Read-50%Update
./bin/ycsb run redis -s -P workloads/workloada  -p "redis.host=${ip}" -p  "redis.port=${port}" -p "recordcount=${recordcount}" -p "operationcount=${run_operationcount}" -p "redis.timeout=${timeout}" -p "redis.command_group=${command_group}" -p "fieldcount=${fieldcount}" -p "fieldlength=${fieldlength}" -p "requestdistribution=uniform" -threads ${threads}

表 1. 參數說明

參數

說明

ip

Tair執行個體的IP地址。

port

Tair執行個體的服務連接埠。

timeout

測試命令的逾時時間,單位為ms。

command_group

測試類型,配置為String。

recordcount

資料載入階段準備的資料量。

run_operationcount

Run階段操作的資料量。本測試中:

  • 記憶體大於資料情境下,配置和recordcount參數相同的值。

  • 資料大於記憶體情境下,配置的值與recordcount 相同。

fieldcount

欄位個數,配置為1。

fieldlength

值長度,配置為100。

threads

YCSB線程數,根據執行個體規格配置。

測試結果

測試單位

說明

QPS

每秒處理的讀寫運算元,單位為次/秒。

Average Latency

讀或寫操作的平均延遲,單位為微秒(us)。

99th Percentile Latency

處理速度最快的99%的操作中,最長的延遲時間,單位為微秒。例如該指標的值為500微秒,表示99%的請求可以在500微秒內被處理。

記憶體大於資料情境

執行個體規格

YCSB配置

工作負載

QPS(次/秒)

Average Latency(微秒)

99th Percentile Latency(微秒)

tair.localssd.c1m8.xlarge

recordcount=20000000

run_operationcount=20000000

threads=64

fieldlength=100

Load

41960

1522

5523

Uniform-Read

110867

574

2515

Zipfian-Read

116309

547

2429

Uniform-50%Read-50%Update

53116

READ:1094

READ:4025

UPDATE:1310

UPDATE:4655

tair.localssd.c1m8.2xlarge

recordcount=40000000

run_operationcount=40000000

threads=128

fieldlength=100

Load

64378

1985

6091

Uniform-Read

205584

620

2279

Zipfian-Read

211290

603

2217

Uniform-50%Read-50%Update

80796

READ:1406

READ:4631

UPDATE:1756

UPDATE:5495

tair.localssd.c1m8.with.proxy.xlarge(3分區)

recordcount=60000000

run_operationcount=60000000

threads=192

fieldlength=100

Load

110169

1737

11279

Uniform-Read

233028

820

4675

Zipfian-Read

235489

811

4655

Uniform-50%Read-50%Update

122866

READ:1480

READ:10311

UPDATE:1635

UPDATE:10735

tair.localssd.c1m8.with.proxy.2xlarge(3分區)

recordcount=120000000

run_operationcount=120000000

threads=384

fieldlength=100

Load

180502

2122

10727

Uniform-Read

429252

891

3293

Zipfian-Read

438533

872

3365

Uniform-50%Read-50%Update

231044

READ:1541

READ:8663

UPDATE:1772

UPDATE:9151

image

資料大於記憶體情境

執行個體規格

YCSB配置

工作負載

QPS(次/秒)

Average Latency(微秒)

99th Percentile Latency(微秒)

tair.localssd.c1m8.xlarge

recordcount=640000000

run_operationcount=640000000

threads=64

fieldlength=100

Load

32596

1961

8135

Uniform-Read

50227

1272

3753

Zipfian-Read

71804

889

2947

Uniform-50%Read-50%Update

27063

READ:2306

READ:8199

UPDATE:2416

UPDATE:8535

tair.localssd.c1m8.2xlarge

recordcount=1280000000

run_operationcount=1280000000

threads=128

fieldlength=100

Load

50608

2526

9071

Uniform-Read

78931

1619

4371

Zipfian-Read

113338

1127

3347

Uniform-50%Read-50%Update

47564

READ:2598

READ:8471

UPDATE:2778

UPDATE:8959

tair.localssd.c1m8.with.proxy.xlarge(3分區)

recordcount=1920000000

run_operationcount=1920000000

threads=192

fieldlength=100

Load

88483

2167

16383

Uniform-Read

119177

1609

8775

Zipfian-Read

156079

1228

7663

Uniform-50%Read-50%Update

70402

READ:2670

READ:19295

UPDATE:2777

UPDATE:19535

tair.localssd.c1m8.with.proxy.2xlarge(3分區)

recordcount=3840000000

run_operationcount=3840000000

threads=384

fieldlength=100

Load

147757

2596

16559

Uniform-Read

217186

1766

7087

Zipfian-Read

282698

1356

6131

Uniform-50%Read-50%Update

135495

READ:2766

READ:18591

UPDATE:2895

UPDATE:18815

image

相關文檔

磁碟型