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

ApsaraDB RDS:TDE テストレポート

最終更新日:Dec 26, 2025

このトピックでは、仕様の異なる RDS for MySQL インスタンスにおける TDE (透過的データ暗号化) のパフォーマンスへの影響について説明します。CPU とメモリへの影響を網羅し、TDE を有効にするかどうかの判断材料を提供します。

テストの結論

TDE を有効にすると、RDS for MySQL インスタンスのパフォーマンスが低下し、CPU 使用率が増加します。

  • 低い同時実行性では、パフォーマンスの低下は最大 20% と顕著です。高い同時実行性では、I/O のマージなどの要因により、パフォーマンスの低下は 5% 未満に収まります。

  • 4 コア 16 GB メモリのインスタンスの場合、TDE を有効にして暗号化されたテーブルにアクセスすると、CPU 使用率が 0.06% から 4.22% 増加します。8 コア 32 GB メモリのインスタンスの場合、CPU 使用率は 0.12% から 2.86% 増加します。

  • 全体として、パフォーマンスの低下は、oltp_write_only や oltp_update_index のような書き込み集中型のシナリオでより顕著です。

テスト環境

設定項目

テストシナリオ 1

テストシナリオ 2

リージョンとゾーン

中国 (杭州)

ネットワークタイプ

Virtual Private Cloud

ハードウェアアーキテクチャ

x86-64

ストレージタイプ

プレミアムローカル SSD

CPU

4 コア

8 コア

メモリ

16 GB

32 GB

バッファプールサイズ

12 GB

24 GB

最大 IOPS

7000

12000

インスタンスバージョン

mysql80_8.0.28_20230610

テストデータセットサイズ

41 GB

テストツール

Sysbench は、オープンソースでモジュール式の、クロスプラットフォームかつマルチスレッドのベンチマークツールであり、高負荷状態にあるデータベースシステムのパフォーマンスを評価するために使用されます。詳細については、Sysbench ドキュメントをご参照ください。

テストメトリック

  • 1 秒あたりのトランザクション数 (TPS):データベースが 1 秒あたりにコミットするトランザクションの数。

  • 平均レイテンシ:データベースが 1 つのトランザクションを実行するために要する平均時間。単位はミリ秒 (ms) です。

テストテーブルスキーマ

Sysbench のデフォルトのテーブルスキーマは次のとおりです。

CREATE TABLE `sbtest8` (
  `id` int NOT NULL AUTO_INCREMENT,
  `k` int NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `k_8` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=100001 DEFAULT CHARSET=utf8mb3

テスト手順

このテストでは、TDE が有効な MySQL インスタンスで、さまざまなシナリオにおいて暗号化されたテーブルにアクセスする際のパフォーマンスを測定します。

  1. RDS for MySQL インスタンスを作成します。詳細については、「RDS for MySQL インスタンスの作成」をご参照ください。

  2. データベースとアカウントを作成します。詳細については、「データベースとアカウントの作成」をご参照ください。

  3. Linux を実行している ECS インスタンスで、次のコマンドを実行して MySQL クライアントをインストールします。

    • CentOS の場合、sudo yum install mysql を実行します。

    • Ubuntu の場合、sudo apt-get update を実行してから sudo apt install mysql-server を実行します。

  4. MySQL コマンドラインインターフェイスを開き、次のコマンドを実行して RDS for MySQL データベースに接続します。

    mysql -h<database_endpoint> -u<username> -P<port_number> -p<password>
    説明

    データベースのエンドポイントとポート番号を取得する方法については、「インスタンスのエンドポイントとポートの表示と管理」をご参照ください。

  5. データベースを終了し、Sysbench ツールを使用してテストデータをロードします。

    説明
    • このテストでは、Sysbench を使用して、それぞれ 100,000 レコードを含む 128 個のテーブルをロードします。次のスクリプト例では、oltp_read_write モデルを使用します。

    • サンプルコードでは、スレッド数は 16 です。この値を、1、8、16、32、64、128、256 などの実際のスレッド数に置き換えてください。

    sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=16 --time=60 oltp_read_write prepare
  6. カスタムテストスクリプトを実行します。

    sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=16 --time=60 oltp_read_write run
  7. データをクリーンアップします。

    sysbench --db-driver=mysql --mysql-host=[database server host] --mysql-port=[database server port] --mysql-user=[database user name] --mysql-password=[database user password] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=16 --time=60  oltp_read_write cleanup

テストシナリオ 1:プレミアムローカル SSD を使用した 4 コア 16 GB インスタンスにおける TDE 有効化前後の比較

テストデータ

各モデルのインスタンスパフォーマンス傾向グラフ

image.png

image.png

CPU

image.png

パフォーマンスデータの概要

image.png

image.png

image.png

説明

rds_ssd_4c16g_tde_off[3]:TDE が無効になっている 4 コア 16 GB の RDS for MySQL インスタンス。

rds_ssd_4c16g_tde_on[2]:TDE が有効になっている 4 コア 16 GB の RDS for MySQL インスタンス。

テストシナリオ 2:プレミアムローカル SSD を使用した 8 コア 32 GB インスタンスにおける TDE 有効化前後の比較

テストデータ

各モデルのインスタンスパフォーマンス傾向グラフ

image.png

image.png

image.png

パフォーマンスデータの概要

image.png

image.png

image.png

説明

rds_ssd_8c32g_tde_off[11]:TDE が無効になっている 8 コア 32 GB の RDS for MySQL インスタンス。

rds_ssd_8c32g_tde_on[12]:TDE が有効になっている 8 コア 32 GB の RDS for MySQL インスタンス。