全部产品
Search
文档中心

Tair (Redis® OSS-Compatible):Whitepaper kinerja instance berbasis SSD

更新时间:Jun 27, 2025

Topik ini menjelaskan lingkungan pengujian, alat uji, metode pengujian, dan hasil pengujian dari uji kinerja pada instance Tair (Enterprise Edition) berbasis SSD.

Lingkungan pengujian

Item

Deskripsi

Wilayah dan zona

Semua pengujian dilakukan di Hangzhou Zone I.

Arsitektur instance

Digunakan arsitektur master-replika standar. Untuk informasi lebih lanjut, lihat Arsitektur standar.

Mesin virtual tempat alat uji stres ditempatkan

Digunakan sebuah instance Elastic Compute Service (ECS) dengan tipe ecs.g6e.13xlarge. Untuk informasi lebih lanjut, lihat Ikhtisar keluarga instance.

Tipe instance berbasis SSD

  • tair.localssd.c1m4.2xlarge

  • tair.localssd.c1m4.4xlarge

  • tair.localssd.c1m4.8xlarge

Pengujian kinerja berfokus pada evaluasi kinerja instance berbasis SSD dalam skenario berikut:

  • Skenario di mana ukuran memori lebih besar daripada volume data: Sebagian besar data dapat diakses dari memori. Dalam skenario ini, rasio ukuran memori terhadap volume data sekitar 7:1.

  • Skenario di mana volume data lebih besar daripada ukuran memori: Hanya sebagian data yang disimpan di memori. Sebagian besar permintaan akses memerlukan operasi baca dan tulis pada disk. Dalam skenario ini, rasio ukuran memori terhadap volume data sekitar 1:4.

Alat uji

Anda dapat menggunakan YCSB open source untuk melakukan uji stres. YCSB adalah alat Java yang dapat digunakan untuk mengukur kinerja berbagai jenis database. Untuk informasi lebih lanjut tentang cara menginstal dan menggunakan YCSB, lihat YCSB.

Dalam pengujian ini, kode sumber YCSB dimodifikasi untuk memungkinkan Anda menetapkan parameter recordcount ke nilai bertipe LONG dan menguji perintah string terkait Redis. Untuk mendapatkan kode sumber yang telah dimodifikasi, unduh paket kode sumber YCSB.

Perintah uji

Skrip berikut digunakan untuk menguji kinerja dalam skenario di mana volume data lebih besar daripada ukuran memori:

#! /bin/bash

ip=192.168.0.23
port=3100
timeout=30000
command_group=string
recordcount=640000000
run_operationcount=20000000
fieldcount=1
fieldlength=100
threads=32
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}

Tabel 1. Parameter

Parameter

Deskripsi

ip

Alamat IP dari instance Tair.

port

Port layanan dari instance Tair.

timeout

Periode timeout perintah uji. Unit: ms.

command_group

Jenis data yang akan diuji. Tetapkan parameter ini ke String.

recordcount

Jumlah data yang dipersiapkan selama fase pemuatan data.

run_operationcount

Jumlah data yang terlibat dalam operasi. Saat menetapkan parameter ini, perhatikan aturan berikut:

  • Dalam skenario di mana ukuran memori lebih besar daripada volume data, tetapkan parameter ini ke nilai parameter recordcount.

  • Dalam skenario di mana volume data lebih besar daripada ukuran memori, tetapkan parameter ini ke nilai parameter recordcount dibagi 32.

fieldcount

Jumlah bidang. Tetapkan parameter ini ke 1.

fieldlength

Panjang setiap bidang. Tetapkan parameter ini ke 100.

threads

Jumlah thread YCSB. Tetapkan parameter ini berdasarkan tipe instance.

Hasil uji

Metrik uji

Deskripsi

QPS

Jumlah operasi baca dan tulis yang diproses per detik.

Latensi Rata-rata

Latensi rata-rata operasi baca atau tulis. Unit: µs.

Latensi Persentil ke-99

Latensi tertinggi untuk 99% operasi tercepat. Unit: µs. Contohnya, jika parameter ini diatur ke 500 µs, 99% operasi diproses dalam waktu 500 µs.

Skenario di mana ukuran memori lebih besar daripada volume data

Tipe instance

Konfigurasi YCSB

Beban kerja

QPS

Latensi rata-rata (µs)

Latensi persentil ke-99 (µs)

tair.localssd.c1m4.2xlarge

recordcount=40000000

run_operationcount=40000000

threads=64

Load

59830

1066

2761

Uniform-Read

158221

389

891

Zipfian-Read

164233

379

873

Uniform-50%Read-50%Update

78099

Read: 651

Read: 2012

Update: 974

Update: 2731

tair.localssd.c1m4.4xlarge

recordcount=80000000

run_operationcount=80000000

threads=128

Load

91991

1388

3077

Uniform-Read

302940

414

921

Zipfian-Read

305639

410

899

Uniform-50%Read-50%Update

124929

Read: 798

Read: 2231

Update: 1234

Update: 3013

tair.localssd.c1m4.8xlarge

recordcount=160000000

run_operationcount=160000000

threads=256

Load

132865

1924

3323

Uniform-Read

489287

513

1313

Zipfian-Read

501847

499

1272

Uniform-50%Read-50%Update

187390

Read: 1069

Read: 2749

Update: 1644

Update: 3613

Skenario di mana volume data lebih besar daripada ukuran memori

Tipe instance

Konfigurasi YCSB

Beban kerja

QPS

Latensi rata-rata (µs)

Latensi persentil ke-99 (µs)

tair.localssd.c1m4.2xlarge

recordcount=1280000000

run_operationcount=1280000000

threads=64

Load

50396

1258

4463

Uniform-Read

74611

842

1745

Zipfian-Read

106366

588

1406

Uniform-50%Read-50%Update

47833

Read: 1232

Read: 4049

Write: 1402

Write: 4583

tair.localssd.c1m4.4xlarge

recordcount=2560000000

run_operationcount=2560000000

threads=128

Load

81097

1573

4119

Uniform-Read

118141

1071

3085

Zipfian-Read

194704

634

1595

Uniform-50%Read-50%Update

75625

Read: 1562

Read: 4999

Update: 1795

Update: 5419

tair.localssd.c1m4.8xlarge

recordcount=5120000000

run_operationcount=5120000000

threads=256

Load

115660

2210

5235

Uniform-Read

202365

1252

3985

Zipfian-Read

309019

804

2551

Uniform-50%Read-50%Update

122318

Read: 1861

Read: 5603

Update: 2307

Update: 6415

Referensi

Instance Berbasis ESSD/SSD