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

ApsaraDB RDS:TDEテストレポート

最終更新日:Mar 19, 2024

このトピックでは、RDSインスタンスのCPUとメモリへの影響など、さまざまなインスタンスタイプを使用するApsaraDB RDS for MySQLインスタンスのパフォーマンスに対する透過的データ暗号化 (TDE) の影響について説明します。 これにより、RDSインスタンスのTDEを有効にするかどうかを判断できます。

テストの結論

RDSインスタンスでTDEを有効にすると、パフォーマンスが低下し、CPU使用率が高くなります。

  • RDSインスタンスで少数の同時クエリが実行されると、RDSインスタンスのパフォーマンスが20% にもなる可能性があります。 RDSインスタンスで多数の同時クエリが実行されている場合、I/Oマージなどの理由により、パフォーマンスの低下は5% 未満になります。

  • 4コアと16 GBのメモリを提供するRDSインスタンスでTDEが有効になっている場合、RDSインスタンスの暗号化されたテーブルにアクセスすると、CPU使用率が0.06% 〜4.22% の範囲で増加する可能性があります。 8コアと32 GBのメモリを提供するRDSインスタンスの場合、CPU使用率の増加は0.12% 〜2.86% です。

  • 全体として、oltp_write_onlyやoltp_update_indexなどの書き込みシナリオでは、パフォーマンスの低下は明らかです。

テスト環境

設定アイテム

テストシナリオ1

テストシナリオ2

リージョンとゾーン

cn-hangzhou

ネットワークタイプ

仮想プライベートクラウド (VPC)

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

x86 64

ストレージタイプ

ローカルディスク

CPU

4 コア

8 コア

メモリ容量

16 GB

32 GB

BP設定

12 GB

24 GB

最大 IOPS

7000

12,000

データベースエンジンのバージョン

mysql80_8.0.28_20230610

テストデータセットのVolumn

41 GB

説明
  • BP設定は、innodb_buffer_poolパラメーターで指定されるバッファプールのサイズを指します。

  • クラウドディスクを使用するApsaraDB RDS for MySQLインスタンスでは、TDEはサポートされていません。

テストツール

sysbenchは、オープンソース、モジュラー、クロスプラットフォーム、およびマルチスレッドのベンチマークツールで、負荷の高いデータベースシステムのパフォーマンスを評価するために使用できます。 sysbenchの詳細とsysbenchの使用方法については、「sysbenchドキュメント」をご参照ください。

テストメトリクス

  • Transactions per second (TPS): このメトリックは、RDSインスタンスで1秒あたりにコミットされたトランザクションの数を示します。

  • 平均レイテンシ: このメトリックは、RDSインスタンスがトランザクションを実行するのに必要な平均期間を示します。 単位:ミリ秒。

テストテーブルスキーマ

デフォルトでは、sysbenchは次のテーブルスキーマを使用します。

テーブル '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 ''、
  主要なキー ('id') 、
  キー 'k_8 ' ('k')
) エンジン=InnoDB AUTO_INCREMENT=100001デフォルト料金=utf8mb3 

テスト手順

このテストでは、テーブル列を暗号化して、さまざまなシナリオでRDSインスタンスのパフォーマンスに対するTDEの影響を分析します。

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

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

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

    • CentOSオペレーティングシステムを使用している場合は、sudo yum install mysqlコマンドを実行します。

    • Ubuntuオペレーティングシステムを使用している場合は、sudo apt-get updateコマンドを実行してから、sudo apt install mysql-serverコマンドを実行します。

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

    mysql -h <RDSインスタンスのエンドポイント> -u <ユーザー名> -P <ポート番号> -p <パスワード>
    説明

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

  5. RDSインスタンスを終了し、sysbenchを使用してテストデータを読み込みます。

    説明
    • テストでは、128のテーブルがsysbenchを使用してロードされ、各テーブルには100,000行のデータレコードが含まれます。 次の例では、oltp_read_writeモデルが使用されています。

    • テストでは、スレッドの数は16です。 1、8、16、32、64、128、256などの実際の番号に置き換えます。

    sysbench-db-driver=mysql-host=[データベースサーバーホスト]-mysql-port=[データベースサーバーポート]-mysql-user=[データベースユーザー名]-mysql-password=[データベースユーザーパスワード]-mysql-db=testdb-table_size=1000000-tables=128 -- threads=16-time=60 oltp_read_write
  6. カスタムテストスクリプトを実行します。

    sysbench-db-driver=mysql-host=[データベースサーバーホスト]-mysql-port=[データベースサーバーポート]-mysql-user=[データベースユーザー名]-mysql-password=[データベースユーザーパスワード]-mysql-db=testdb-table_size=1000000-tables=128 -- threads=16-time=60 oltp_read_wrun
  7. データを削除します。

    sysbench-db-driver=mysql-host=[データベースサーバーホスト]-mysql-port=[データベースサーバーポート]-mysql-user=[データベースユーザー名]-mysql-password=[データベースユーザーパスワード]-mysql-db=testdb-table_size=1000000-tables=128 -- threads=16-time=60

テストシナリオ1: 4コアと16 GBのメモリを提供し、TDEを有効にする前と後のローカルディスクを使用するRDSインスタンスのパフォーマンスの比較

テストデータ

異なるモデルが使用されている場合のRDSインスタンスのパフォーマンストレンドチャート

image.png

image.png

CPU

image.png

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

image.png

image.png

image.png

説明

rds_ssd_4c16g_tde_off[3]: TDEが無効になっているRDSインスタンス。

rds_ssd_4c16g_tde_on[2]: TDEが有効になっているRDSインスタンス。

テストシナリオ2: 8コアと32 GBのメモリを提供し、TDEを有効にする前と後のローカルディスクを使用するRDSインスタンスのパフォーマンスの比較

テストデータ

異なるモデルが使用されている場合のRDSインスタンスのパフォーマンストレンドチャート

image.png

image.png

image.png

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

image.png

image.png

image.png

説明

rds_ssd_8c32g_tde_off[11]: TDEが無効になっているRDSインスタンス。

rds_ssd_8c32g_tde_on[12]: TDEが有効になっているRDSインスタンス。