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

ApsaraDB for OceanBase (Deprecated):TDE テストレポート

最終更新日:Jan 19, 2025

このトピックでは、ApsaraDB for OceanBase で透過データ暗号化(TDE)が有効になっている場合と無効になっている場合のパフォーマンスの違いについて説明します。これは、TDE を有効にするかどうかを評価するのに役立ちます。

テストの結論

128 または 256 の同時接続でオンライントランザクション処理(OLTP)ワークロードのパフォーマンステストを実施した結果、TDE を有効にしても更新パフォーマンスには影響がないことが示されました。ただし、他の操作では、以下に示すようにわずかなパフォーマンスの低下が発生します。

  • ポイントセレクト:約 3%。 読み取り専用操作:約 1%。

  • 読み取り/書き込み操作:約 2%。 書き込み専用操作:約 1%。 挿入:約 1%。

最も顕著な影響は、ポイントセレクトと読み取り/書き込み操作で観察されますが、どちらも 3% 未満です。

テスト環境

  • クラスタ構成

    項目

    構成

    クラスタバージョン

    OceanBase V4.2.1.8

    クラスタ仕様

    2F1A、プライマリゾーン = zone1、8C16G

    クラスタサーバー

    • CPU コア:8C

    • メモリ:61 GB

  • クライアント構成

    項目

    構成

    OS

    Linux iZbp1eodxjpfw80wly2g4oZ 5.10.134-16.3.al8.x86_64 #1 SMP Tue Mar 26 18:54:05 CST 2024 x86_64 x86_64 x86_64 GNU/Linux

    sysbench

    sysbench 1.0.20

    CPU コア

    8C

    メモリ

    30 GB

テストツール

sysbench は、オープンソースのクロスプラットフォームでマルチスレッドのベンチマークツールであり、モジュール設計を使用して、負荷の高いデータベースを実行するシステムのパフォーマンスを評価します。

テストメトリック

  • 1 秒あたりのトランザクション数(TPS):データベースで 1 秒あたりに実行されるコミット済みトランザクションの数。

  • 平均レイテンシ:データベースでトランザクションを実行するのにかかる平均時間(ミリ秒)。

テスト手順

テストでは、それぞれ 100 万件のデータレコードを含む 128 個のテーブルを使用し、60 秒間実行します。

sysbench のインストール

使用できるのは、yum install数回クリックするだけで sysbench をインストールするコマンド、または手動でインストールします。

  • を使用しますyum installsysbench をインストールするコマンド。

    クライアントで次のコマンドを実行して、sysbench をインストールします。

    sudo yum install sysbench
  • sysbench を手動でインストールします。

    1. sysbench をダウンロードします。

      sysbench をダウンロードするには、GitHub にアクセスしてください。

    2. sysbench パッケージを解凍します。

      unzip ./1.0.20.zip
    3. sysbench をコンパイルします。

      sysbench のディレクトリに移動し、次のコマンドを実行して sysbench をコンパイルします。

      [w****@localhost ~]# cd sysbench-1.0.20
      [w****@localhost sysbench-1.0.20]# ./autogen.sh
      [w****@localhost sysbench-1.0.20]# ./configure --prefix=/usr/sysbench/ --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib64/mysql/ --with-mysql
      [w****@localhost sysbench-1.0.20]# make
      [w****@localhost sysbench-1.0.20]# make install

      次の表にパラメーターを示します。

      パラメーター

      説明

      --prefix

      sysbench のインストールディレクトリを指定します。

      --with-mysql-includes

      MySQL ヘッダーファイルを含むディレクトリを指定します。

      --with-mysql-libs

      MySQL ライブラリを含むディレクトリを指定します。

      --with-mysql

      デフォルトで sysbench で MySQL サポートを有効にします。

    4. 次のコマンドを実行して、sysbench が正常にインストールされたかどうかを確認します。

      [w****@localhost sysbench-1.0.20] $./src/sysbench --help 

      次の情報が返された場合、sysbench は正常にインストールされています。

      Usage:
          sysbench [options]... [testname] [command]
      Commands implemented by most tests: prepare run cleanup help

テストの実行

説明
  • 次のテストプロセスは、他のすべてのスレッドおよびスクリプトテストで一貫しています。

  • このテストでは、読み取り/書き込みスクリプトは、それぞれ 100 万件のデータレコードを含む 128 個のスレッドと 128 個のテーブルを使用して、MySQL テナントに対して 60 秒間実行されます。

  1. MySQL モードで ApsaraDB for OceanBase を構築する方法の詳細については、「インスタンスの購入」>「テナントの作成」>「アカウントの作成」>「MySQL データベースの作成」をご参照ください。

  2. テストテナントにログインします。 ApsaraDB for OceanBase にログインして、接続文字列情報を取得できます。詳細については、「接続パラメーターを取得する」をご参照ください。

    obclient -h$host -P$port -u$user_name -p****** 
  3. ディスク容量を解放するために、未使用のデータをクリアします。

    obclient> PURGE RECYCLEBIN; 
  4. タイムアウトを設定します。

    obclient > set global ob_query_timeout=36000000000;
  5. TDE 機能を設定します。詳細については、「TDE を有効にする」をご参照ください。

  6. ApsaraDB for OceanBase からログアウトし、ApsaraDB for OceanBase、sysbench を使用してロードテストデータを実行します。

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

    [w****@localhost src]# ./sysbench --db-driver=mysql --mysql-host=[データベースサーバーホスト] --mysql-port=[データベースサーバーポート] --mysql-user=[データベースユーザー名] --mysql-password=[データベースユーザーパスワード] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=128 --time=60 oltp_read_write run
  8. データをクリーンアップします。

    [w****@localhost src]# ./sysbench --db-driver=mysql --mysql-host=[データベースサーバーホスト] --mysql-port=[データベースサーバーポート] --mysql-user=[データベースユーザー名] --mysql-password=[データベースユーザーパスワード] --mysql-db=testdb --table_size=1000000 --tables=128 --threads=128 --time=60  oltp_read_write cleanup

テスト結果

テストスクリプト/スレッド

TDE 有効

128(tps/rt avg)

256(tps/rt avg)

レート

ポイントセレクト

いいえ

161720.04/0.79

172429.16/1.48

\

ポイントセレクト

はい

161113.90/0.79

167284.47/1.53

-2.98%

読み取り専用

いいえ

6571.77/19.47

6877.75/37.19

\

読み取り専用

はい

6558.48/15.51

6813.74/37.54

-0.93%

読み取り/書き込み

いいえ

3483.70/36.10

3575.20/71.50

\

読み取り/書き込み

はい

3391.10/37.72

3572.78/71.55

-2.61%

挿入

いいえ

37806.09/3.38

54585.23/4.69

\

挿入

はい

37121.78/3.45

54353.98/4.71

-0.42%

更新

いいえ

29743.67/4.30

38743.35/6.61

\

更新

はい

29866.70/4.28

38905.09/6.58

影響なし

インデックスなし更新

いいえ

38892.58/3.29

55662.11/4.60

\

インデックスなし更新

はい

39250.25/3.26

56661.89/4.52

影響なし

書き込み専用

いいえ

11583.12/11.05

12395.72/20.64

\

書き込み専用

はい

11450.32/11.17

12259.25/20.87

-1.10%

説明

上記の表の マイナス記号 (-) は、レート 列のパフォーマンスの低下を示しています。たとえば、TDE が有効になっている場合、point select のパフォーマンスは 2.98% 低下します。