Topik ini menjelaskan dampak Transparent Data Encryption (TDE) terhadap kinerja instance ApsaraDB RDS for MySQL dengan berbagai jenis instance, termasuk pengaruhnya pada CPU dan memori instance RDS. Informasi ini membantu Anda menentukan apakah akan mengaktifkan TDE untuk instance RDS.
Kesimpulan pengujian
Mengaktifkan TDE pada instance RDS menyebabkan penurunan kinerja serta peningkatan pemanfaatan CPU.
Jika sejumlah kecil kueri konkuren dijalankan pada instance RDS, penurunan kinerja dapat mencapai hingga 20%. Namun, jika sejumlah besar kueri konkuren dijalankan, penurunan kinerja berkurang menjadi kurang dari 5% karena faktor seperti penggabungan I/O.
Saat TDE diaktifkan pada instance RDS dengan konfigurasi 4 core dan 16 GB memori, akses ke tabel terenkripsi dapat meningkatkan pemanfaatan CPU antara 0,06% hingga 4,22%. Pada instance RDS dengan 8 core dan 32 GB memori, peningkatan pemanfaatan CPU berkisar antara 0,12% hingga 2,86%.
Penurunan kinerja sangat signifikan dalam skenario penulisan seperti oltp_write_only dan oltp_update_index.
Lingkungan pengujian
Item konfigurasi | Skenario pengujian 1 | Skenario pengujian 2 |
Wilayah dan zona | cn-hangzhou | |
Tipe jaringan | Virtual private cloud (VPC) | |
Arsitektur perangkat keras | x86 64 | |
Tipe penyimpanan | Disk lokal | |
CPU | 4 core | 8 core |
Kapasitas memori | 16 GB | 32 GB |
Konfigurasi BP | 12 GB | 24 GB |
IOPS maksimum | 7000 | 12000 |
Versi mesin database | mysql80_8.0.28_20230610 | |
Volume set data pengujian | 41 GB | |
Konfigurasi BP merujuk pada ukuran pool buffer, yang ditentukan oleh parameter innodb_buffer_pool.
TDE tidak didukung untuk instance ApsaraDB RDS for MySQL yang menggunakan disk cloud.
Alat pengujian
Sysbench adalah alat benchmark open source, modular, lintas platform, dan multi-threaded yang digunakan untuk mengevaluasi kinerja sistem database dengan beban kerja tinggi. Untuk informasi lebih lanjut tentang sysbench dan cara menggunakannya, lihat dokumentasi sysbench.
Metrik pengujian
Transaksi per detik (TPS): Metrik ini menunjukkan jumlah transaksi yang diproses oleh instance RDS per detik.
Latensi rata-rata: Metrik ini menunjukkan waktu rata-rata yang diperlukan oleh instance RDS untuk mengeksekusi sebuah transaksi. Satuan: milidetik.
Skema tabel pengujian
Secara default, sysbench menggunakan skema tabel berikut:
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=utf8mb3Prosedur pengujian
Dalam pengujian ini, kolom tabel dienkripsi untuk menganalisis dampak TDE terhadap kinerja instance RDS dalam berbagai skenario.
Buat instance RDS. Untuk informasi lebih lanjut, lihat Buat Instance ApsaraDB RDS for MySQL.
Buat database dan akun untuk instance RDS. Untuk informasi lebih lanjut, lihat Buat Database dan Akun untuk Instance ApsaraDB RDS for MySQL.
Jalankan perintah berikut pada instance ECS yang menjalankan Linux untuk menginstal klien MySQL:
Jika Anda menggunakan sistem operasi CentOS, jalankan perintah
sudo yum install mysql.Jika Anda menggunakan sistem operasi Ubuntu, jalankan perintah
sudo apt-get update, lalu perintahsudo apt install mysql-server.
Buka alat baris perintah MySQL dan jalankan perintah berikut untuk terhubung ke instance RDS:
mysql -h<Endpoint of the RDS instance> -u<Username> -P<Port number> -p<Password>CatatanUntuk informasi lebih lanjut tentang cara mendapatkan endpoint dan nomor port instance RDS, lihat Lihat dan Kelola Endpoint dan Port Instance.
Keluar dari instance RDS dan gunakan sysbench untuk memuat data pengujian.
CatatanDalam pengujian, 128 tabel dimuat menggunakan sysbench, dan setiap tabel berisi 100.000 baris data. Dalam contoh berikut, model oltp_read_write digunakan.
Dalam pengujian, jumlah thread adalah 16. Gantikan dengan jumlah aktual seperti 1, 8, 16, 32, 64, 128, dan 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 prepareJalankan skrip pengujian kustom.
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 runHapus data.
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
Skenario pengujian 1: Perbandingan kinerja instance RDS yang menyediakan 4 core dan 16 GB memori dan menggunakan disk lokal sebelum dan sesudah TDE diaktifkan
Data pengujian
Grafik tren kinerja instance RDS saat model berbeda digunakan


CPU

Rangkuman data kinerja



rds_ssd_4c16g_tde_off[3]: instance RDS dengan TDE dinonaktifkan.
rds_ssd_4c16g_tde_on[2]: instance RDS dengan TDE diaktifkan.
Skenario pengujian 2: Perbandingan kinerja instance RDS yang menyediakan 8 core dan 32 GB memori dan menggunakan disk lokal sebelum dan sesudah TDE diaktifkan
Data pengujian
Grafik tren kinerja instance RDS saat model berbeda digunakan



Rangkuman data kinerja



rds_ssd_8c32g_tde_off[11]: instance RDS dengan TDE dinonaktifkan.
rds_ssd_8c32g_tde_on[12]: instance RDS dengan TDE diaktifkan.