このトピックでは、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 sysbenchsysbench を手動でインストールします。
sysbench をダウンロードします。
sysbench をダウンロードするには、GitHub にアクセスしてください。
sysbench パッケージを解凍します。
unzip ./1.0.20.zipsysbench をコンパイルします。
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 サポートを有効にします。
次のコマンドを実行して、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 秒間実行されます。
MySQL モードで ApsaraDB for OceanBase を構築する方法の詳細については、「インスタンスの購入」>「テナントの作成」>「アカウントの作成」>「MySQL データベースの作成」をご参照ください。
テストテナントにログインします。 ApsaraDB for OceanBase にログインして、接続文字列情報を取得できます。詳細については、「接続パラメーターを取得する」をご参照ください。
obclient -h$host -P$port -u$user_name -p******ディスク容量を解放するために、未使用のデータをクリアします。
obclient> PURGE RECYCLEBIN;タイムアウトを設定します。
obclient > set global ob_query_timeout=36000000000;TDE 機能を設定します。詳細については、「TDE を有効にする」をご参照ください。
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カスタムテストスクリプトを実行します。
[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データをクリーンアップします。
[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% 低下します。