すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):SSD ベースのインスタンスのパフォーマンスホワイトペーパー

最終更新日:Sep 29, 2026

このドキュメントでは、Tair (Enterprise Edition) の SSD ベースのインスタンスのパフォーマンスベンチマークのテスト環境、ツール、方法、および結果について説明します。

テスト環境

項目

説明

リージョンとゾーン

杭州ゾーン J

インスタンスアーキテクチャ

標準マスター/レプリカアーキテクチャ。 詳細については、「標準アーキテクチャ」をご参照ください。

ストレステストホスト

ecs.c9i.8xlarge タイプの Elastic Compute Service (ECS) インスタンス。 詳細については、「インスタンスファミリーの概要」をご参照ください。

テスト対象のインスタンスタイプ

tair.localssd.c1m8.xlarge、tair.localssd.c1m8.2xlarge、tair.localssd.c1m8.with.proxy.xlarge (3 シャード)、tair.localssd.c1m8.with.proxy.2xlarge (3 シャード)

このベンチマークは、メモリ使用率の両極端を表す 2 つのシナリオを対象としています:

  • メモリがデータ量より大きい場合:ほとんどのデータがメモリに収まります。 メモリとデータの比率は約 7:1 です。 これは、メモリ中心のアクセスパターンを表します。

  • データ量がメモリよりも大きい場合:データの一部のみがメモリにキャッシュされ、ほとんどの読み取り/書き込みリクエストにはディスク I/O が必要です。 メモリとデータの比率は約 1:4 です。 これは、SSD 中心のアクセスパターンを表します。

テストツール

このベンチマークでは、オープンソースの Java ベースのデータベースベンチマークフレームワークである YCSB を使用します。

YCSB のソースコードは、LONG 型の recordcount パラメーターをサポートし、Redis の文字列コマンドをテストするように変更されています。 変更されたソースコードについては、「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  ############################################"

# ロード
./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}

# 均一読み取り
./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}

# Zipf 分布読み取り
./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}

# 均一 50% 読み取り-50% 更新
./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}

パラメーター

パラメーター

説明

ip

Tair インスタンスの IP アドレス

port

Tair インスタンスのサービスポート

timeout

コマンドタイムアウト。単位:ms

command_group

テストするデータ型。string に設定します

recordcount

データロードフェーズでロードされるレコード数

run_operationcount

実行フェーズでの操作数。両方のシナリオで、これを recordcount と同じ値に設定します。

fieldcount

レコードあたりのフィールド数。1 に設定します

fieldlength

各フィールドの長さ (バイト単位)。100 に設定します

threads

YCSB クライアントのスレッド数。インスタンスタイプによって異なります。

テストメトリクス

メトリクス

説明

QPS

1 秒あたりに処理される読み取りおよび書き込み操作の数

平均レイテンシー

読み取りまたは書き込み操作の平均レイテンシー。単位:µs

99 パーセンタイルレイテンシー

最も高速な 99% の操作における最大レイテンシー。単位:µs。たとえば、値が 500 µs の場合、99% の操作が 500 µs 以内に完了することを意味します。

テスト結果

メモリがデータ量より大きい場合

メモリとデータの比率は約 7:1 です。ほとんどのリクエストはメモリから処理されます。

インスタンスタイプ

YCSB 設定

ワークロード

QPS

平均レイテンシー (µs)

99 パーセンタイルレイテンシー (µs)

tair.localssd.c1m8.xlarge

recordcount=20,000,000

run_operationcount=20,000,000

threads=64

fieldlength=100

ロード

41,960

1,522

5,523

均一読み取り

110,867

574

2,515

Zipf 分布読み取り

116,309

547

2,429

均一 50% 読み取り-50% 更新

53,116

読み取り:1,094

読み取り:4,025

更新:1,310

更新:4,655

tair.localssd.c1m8.2xlarge

recordcount=40,000,000

run_operationcount=40,000,000

threads=128

fieldlength=100

ロード

64,378

1,985

6,091

均一読み取り

205,584

620

2,279

Zipf 分布読み取り

211,290

603

2,217

均一 50% 読み取り-50% 更新

80,796

読み取り:1,406

読み取り:4,631

更新:1,756

更新:5,495

tair.localssd.c1m8.with.proxy.xlarge (3 シャード)

recordcount=60,000,000

run_operationcount=60,000,000

threads=192

fieldlength=100

ロード

110,169

1,737

11,279

均一読み取り

233,028

820

4,675

Zipf 分布読み取り

235,489

811

4,655

均一 50% 読み取り-50% 更新

122,866

読み取り:1,480

読み取り:10,311

更新:1,635

更新:10,735

tair.localssd.c1m8.with.proxy.2xlarge (3 シャード)

recordcount=120,000,000

run_operationcount=120,000,000

threads=384

fieldlength=100

ロード

180,502

2,122

10,727

均一読み取り

429,252

891

3,293

Zipf 分布読み取り

438,533

872

3,365

均一 50% 読み取り-50% 更新

231,044

読み取り:1,541

読み取り:8,663

更新:1,772

更新:9,151

image

データ量がメモリより大きい場合

メモリとデータの比率は約 1:4 です。ほとんどのリクエストにはディスク I/O が必要になるため、レイテンシーは上記のメモリ中心のシナリオよりも高くなります。

インスタンスタイプ

YCSB 設定

ワークロード

QPS

平均レイテンシー (µs)

99 パーセンタイルレイテンシー (µs)

tair.localssd.c1m8.xlarge

recordcount=640,000,000

run_operationcount=640,000,000

threads=64

fieldlength=100

ロード

32,596

1,961

8,135

均一読み取り

50,227

1,272

3,753

Zipf 分布読み取り

71,804

889

2,947

均一 50% 読み取り-50% 更新

27,063

読み取り:2,306

読み取り:8,199

更新:2,416

更新:8,535

tair.localssd.c1m8.2xlarge

recordcount=1,280,000,000

run_operationcount=1,280,000,000

threads=128

fieldlength=100

ロード

50,608

2,526

9,071

均一読み取り

78,931

1,619

4,371

Zipf 分布読み取り

113,338

1,127

3,347

均一 50% 読み取り-50% 更新

47,564

読み取り:2,598

読み取り:8,471

更新:2,778

更新:8,959

tair.localssd.c1m8.with.proxy.xlarge (3 シャード)

recordcount=1,920,000,000

run_operationcount=1,920,000,000

threads=192

fieldlength=100

ロード

88,483

2,167

16,383

均一読み取り

119,177

1,609

8,775

Zipf 分布読み取り

156,079

1,228

7,663

均一 50% 読み取り-50% 更新

70,402

読み取り:2,670

読み取り:19,295

更新:2,777

更新:19,535

tair.localssd.c1m8.with.proxy.2xlarge (3 シャード)

recordcount=3,840,000,000

run_operationcount=3,840,000,000

threads=384

fieldlength=100

ロード

147,757

2,596

16,559

均一読み取り

217,186

1,766

7,087

Zipf 分布読み取り

282,698

1,356

6,131

均一 50% 読み取り-50% 更新

135,495

読み取り:2,766

読み取り:18,591

更新:2,895

更新:18,815

image

関連ドキュメント

ESSD/SSD ベースのインスタンス