Halaman ini menjelaskan desain, prosedur, dan hasil uji benchmark TPC-H untuk Clustered Columnar Indexes (CCIs) PolarDB-X menggunakan set data berukuran 100 GB. Gunakan hasil ini untuk memperkirakan kinerja kueri pada berbagai konfigurasi node sebelum menyediakan kluster Anda.
Uji ini didasarkan pada spesifikasi TPC Benchmark-H (TPC-H), tetapi tidak memenuhi semua persyaratan TPC-H. Hasilnya tidak dapat dibandingkan dengan hasil benchmark TPC-H yang telah dipublikasikan.
Ringkasan hasil pengujian
Tabel berikut menunjukkan total waktu kueri (dalam detik) untuk ke-22 kueri pada masing-masing konfigurasi node. Nilai lebih rendah menunjukkan kinerja lebih baik.
| Configuration | Total time (s) |
|---|---|
| 2 × 8 cores, 32 GB | 99,82 |
| 4 × 8 cores, 32 GB | 48,55 |
| 2 × 16 cores, 64 GB | 50,31 |
| 3 × 16 cores, 64 GB | 33,00 |
| 4 × 16 cores, 64 GB | 25,54 |
| 6 × 16 cores, 64 GB | 20,56 |
Pemanasan diperlukan jika uji TPC-H dijalankan untuk pertama kalinya. Jalankan beberapa putaran uji hingga hasilnya stabil. Nilai dalam tabel ini merupakan hasil yang sudah stabil.
Latar belakang
TPC-H adalah benchmark decision-support yang dikembangkan dan dirilis oleh Transaction Processing Performance Council (TPC). Benchmark ini terdiri dari 22 kueri SQL kompleks pada 8 tabel. Sebagian besar kueri melibatkan penggabungan tabel (table joins), subkueri, dan klausa GROUP BY.
Desain pengujian
Set data
Pengujian menggunakan set data berukuran 100 GB (faktor skala = 100). Tiga tabel terbesar berisi:
LINEITEM: sekitar 600 juta baris
ORDERS: 150 juta baris
PARTSUPP: 80 juta baris
Konfigurasi node
| Node specifications | Number of nodes | Dataset size |
|---|---|---|
| 8 cores, 32 GB memory | 2 atau 4 | 100 GB |
| 16 cores, 64 GB memory | 2, 3, 4, atau 6 | 100 GB |
Mesin stress test
Stress test dijalankan pada instance Elastic Compute Service (ECS) tipe ecs.g7.4xlarge (16 vCPU, 64 GB memory).
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
Akun Alibaba Cloud dengan izin untuk membuat instance ECS dan PolarDB-X
Akses ke Konsol Alibaba Cloud
Jalankan uji TPC-H
Langkah 1: Buat instance ECS
Buat instance ECS untuk digunakan sebagai client stress test.
Deploy instance ECS dalam virtual private cloud (VPC) dan catat nama serta ID VPC tersebut. Semua instance basis data dalam pengujian ini harus berada dalam VPC yang sama. Gunakan citra OS CentOS dan aktifkan alamat IP publik untuk instance tersebut.
Langkah 2: Buat instance PolarDB-X
Buat instance PolarDB-X dalam VPC yang sama dengan instance ECS.
Tambahkan alamat IP internal instance ECS ke daftar putih instance PolarDB-X.
Langkah 3: Sesuaikan parameter instance
Sesuaikan parameter node komputasi instance PolarDB-X untuk kinerja benchmark optimal.
Atur XPROTO_MAX_DN_CONCURRENT menjadi
4000. Untuk instruksi, lihat Set parameters.Sambungkan ke instance PolarDB-X menggunakan CLI dan jalankan pernyataan SQL berikut dalam satu sesi untuk menonaktifkan pencatatan log, profiling CPU, dan pengumpulan statistik latar belakang:
set global RECORD_SQL = false; set global MPP_METRIC_LEVEL = 0; set global ENABLE_CPU_PROFILE = false; set global ENABLE_BACKGROUND_STATISTIC_COLLECTION = false; set global ENABLE_STATISTIC_FEEDBACK = false;
Langkah 4: Instal Benchmark Boot
Buka port 4121 di security group instance ECS. Untuk instruksi, lihat Add a security group rule.
Login ke instance ECS dan jalankan perintah berikut untuk menginstal Benchmark Boot:
bash -c "$(curl -fsSL https://benchmark-boot.oss-cn-hangzhou.aliyuncs.com/setup.sh)"Untuk informasi lebih lanjut, lihat Download and install Benchmark Boot.
Buka
http://<Public IP of ECS instance>:4121di browser. Jika halaman utama Benchmark Boot dimuat, instalasi telah selesai.
Langkah 5: Muat data pengujian
Pada halaman utama Benchmark Boot, buka Stress Test > Database Connection > Configure Database Connection. Masukkan alamat IP host, port, username, password, dan nama library TPC-H. Atur mode pembuatan library ke AUTO, lalu klik Submit.
Buka Stress Test > TPCH > Import TPC-H. Atur ukuran set data ke 100 GB dan jumlah shard fisik ke 16, lalu klik Submit untuk mengimpor data ke instance PolarDB-X primary.
Setelah impor selesai, Benchmark Boot secara otomatis menjalankan
ANALYZE TABLEuntuk mengumpulkan statistik pengoptimal.Setelah impor selesai, buat CCI pada instance PolarDB-X primary dengan menjalankan pernyataan SQL berikut. Untuk informasi lebih lanjut, lihat Create and use a CCI.
Pembuatan CCI memerlukan waktu sekitar 45 menit. Jalankan
show columnar indexuntuk memeriksa progres. Untuk informasi lebih lanjut, lihat SHOW COLUMNAR INDEX.create clustered columnar index `nation_col_index` on nation(`n_nationkey`) partition by hash(`n_nationkey`) partitions 1; create clustered columnar index `region_col_index` on region(`r_regionkey`) partition by hash(`r_regionkey`) partitions 1; create clustered columnar index `customer_col_index` on customer(`c_custkey`) partition by hash(`c_custkey`) partitions 64; create clustered columnar index `part_col_index` on part(`p_size`) partition by hash(`p_partkey`) partitions 64; create clustered columnar index `partsupp_col_index` on partsupp(`ps_partkey`) partition by hash(`ps_partkey`) partitions 64; create clustered columnar index `supplier_col_index` on supplier(`s_suppkey`) partition by hash(`s_suppkey`) partitions 64; create clustered columnar index `orders_col_index` on orders(`o_orderdate`,`o_orderkey`) partition by hash(`o_orderkey`) partitions 64; create clustered columnar index `lineitem_col_index` on lineitem(`l_shipdate`,`l_orderkey`) partition by hash(`l_orderkey`) partitions 64;
Langkah 6: Tambahkan instance column store read-only
Tambahkan instance column store read-only ke instance PolarDB-X primary.
Tambahkan juga alamat IP internal instance ECS ke daftar putih instance column store read-only tersebut.
Langkah 7: Jalankan pengujian
Pada halaman utama Benchmark Boot, buka Stress Test > Database Connection > Configure Database Connection. Masukkan nama library TPC-H untuk instance column store read-only, atur mode pembuatan library ke AUTO, lalu klik Submit.
Buka Stress Test > TPCH > Run TPCH. Pilih All Queries, masukkan deskripsi tugas, lalu klik Submit untuk menjalankan ke-22 kueri TPC-H.
Buka Test Result > TPCH untuk melihat hasilnya.
Pemanasan diperlukan jika uji TPC-H dijalankan untuk pertama kalinya. Kami menyarankan Anda menjalankan beberapa putaran uji untuk mendapatkan hasil yang stabil.
Hasil pengujian
Unit: detik. Nilai lebih rendah menunjukkan kinerja lebih baik. Jalankan beberapa putaran hingga hasilnya stabil, lalu gunakan nilai stabil tersebut untuk perbandingan.
| Query | 2×8C32G | 4×8C32G | 16C64G×2 | 16C64G×3 | 16C64G×4 | 16C64G×6 |
|---|---|---|---|---|---|---|
| Q1 | 5,9 | 3,99 | 4,37 | 1,6 | 1,22 | 0,86 |
| Q2 | 2,41 | 1,68 | 1,63 | 1,15 | 1,04 | 0,86 |
| Q3 | 4,18 | 2,13 | 2,43 | 1,77 | 1,20 | 0,88 |
| Q4 | 3,72 | 1,02 | 0,94 | 0,78 | 0,48 | 0,44 |
| Q5 | 5,63 | 3,12 | 3,27 | 2,05 | 1,68 | 1,4 |
| Q6 | 0,41 | 0,38 | 0,42 | 0,18 | 0,15 | 0,13 |
| Q7 | 5,47 | 2,94 | 2,93 | 2,08 | 1,72 | 1,34 |
| Q8 | 3,61 | 2,31 | 1,98 | 1,81 | 1,68 | 1,51 |
| Q9 | 13,6 | 6,91 | 7,46 | 4,93 | 3,85 | 3,11 |
| Q10 | 6,36 | 3,12 | 3,5 | 2,31 | 1,73 | 1,26 |
| Q11 | 1,51 | 0,64 | 0,74 | 0,53 | 0,49 | 0,35 |
| Q12 | 1,86 | 0,82 | 0,78 | 0,57 | 0,40 | 0,35 |
| Q13 | 8,85 | 4,29 | 4,44 | 2,6 | 1,64 | 1,2 |
| Q14 | 0,94 | 0,58 | 0,7 | 0,51 | 0,38 | 0,31 |
| Q15 | 1,26 | 0,76 | 0,88 | 0,59 | 0,47 | 0,37 |
| Q16 | 2,3 | 1 | 1,19 | 0,75 | 0,61 | 0,46 |
| Q17 | 1,86 | 0,75 | 0,69 | 0,47 | 0,43 | 0,49 |
| Q18 | 8,43 | 4,18 | 4,43 | 3,16 | 2,19 | 1,6 |
| Q19 | 4,92 | 2,16 | 1,86 | 1,07 | 1,02 | 0,73 |
| Q20 | 1,88 | 1,34 | 1,17 | 0,73 | 0,78 | 0,73 |
| Q21 | 12,05 | 3,18 | 3,11 | 2,38 | 1,72 | 1,57 |
| Q22 | 2,67 | 1,25 | 1,39 | 0,98 | 0,66 | 0,61 |
| Total | 99,82 | 48,55 | 50,31 | 33,00 | 25,54 | 20,56 |