AHBench adalah suite benchmark yang dikembangkan oleh tim Alibaba Cloud Lindorm. Suite ini mendukung pengujian performa satu klik untuk kluster Lindorm dan HBase.
Pendahuluan
Suite pengujian ini mengintegrasikan tool Yahoo! Cloud Serving Benchmark (YCSB), yang menyediakan fitur seperti data pengujian, kontrol alur pengujian, dan agregasi hasil. Anda dapat melakukan pengujian performa satu klik dengan konfigurasi sederhana.
Persiapan
-
Jika client uji stres ditempatkan pada instance ECS, pastikan Lindorm dan instance ECS memenuhi kondisi berikut untuk konektivitas jaringan. Untuk informasi selengkapnya tentang cara melihat informasi instans, lihat View instance information.
-
Instans berada di wilayah yang sama. Disarankan agar instans berada di zona yang sama untuk mengurangi latensi jaringan.
-
Instans memiliki jenis jaringan yang sama.
Catatan-
Virtual Private Cloud (VPC) menawarkan keamanan yang lebih tinggi. Disarankan untuk menggunakan VPC.
-
Jika jenis jaringannya adalah VPC, instans harus menggunakan ID VPC yang sama.
-
-
-
Tambahkan alamat IP client uji stres ke daftar putih instans Lindorm. Untuk informasi selengkapnya, lihat whitelist.
-
Unduh suite pengujian AHBench, unggah ke client uji stres, lalu ekstrak file tersebut.
Catatan penggunaan
-
Uji stres dapat membebani sistem yang diuji. Jangan menjalankan tool pengujian ini di lingkungan produksi.
-
Suite pengujian ini menggunakan "ahbenchtest-read" dan "ahbenchtest-write" sebagai nama tabel pengujian. Tabel-tabel ini mungkin dihapus dan dibuat ulang selama pengujian. Pastikan tabel-tabel tersebut dapat dihapus dengan aman.
-
Pastikan kluster pengujian memiliki storage space yang cukup.
-
ECS menyediakan lingkungan runtime virtual. Oleh karena itu, hasil pengujian performa untuk tipe instans yang sama dapat berfluktuasi sebesar 5% hingga 10%. Fluktuasi ini berada dalam kisaran yang diharapkan.
Lingkungan runtime
Pastikan lingkungan runtime client uji stres memenuhi persyaratan berikut:
-
Linux
-
JDK 1.8 atau versi yang lebih baru
-
Python 2.7
-
Disarankan agar client memiliki setidaknya 16 core CPU dedicated.
Konfigurasikan Titik Akhir Kluster
Konfigurasikan Titik akhir kluster Lindorm atau HBase yang akan diuji dalam file AHBench/conf/hbase-site.xml.
Untuk informasi selengkapnya tentang cara mengakses Lindorm, lihat Develop applications using the HBase Java API. Anda juga perlu menambahkan parameter berikut ke file hbase-site.xml.
<property>
<name>hbase.client.connection.impl</name>
<value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
</property>
Konfigurasikan Variabel Lingkungan
Konfigurasikan variabel lingkungan runtime untuk tool ini dalam file AHBench/conf/ahbench-env.properties.
-
Jalankan perintah berikut untuk membuka file ahbench-env.properties.
vi AHBench/conf/ahbench-env.properties -
Konfigurasikan path instalasi JDK. Contohnya,
JAVA_HOME=/usr/java/jdk1.8.0/. Jika Java sudah ada di PATH sistem, Anda dapat melewatkan konfigurasi ini. -
Konfigurasikan versi kluster HBase yang diuji. Masukkan 1 untuk versi 1.x dan 2 untuk versi 2.x.
HBASE_VERSION=2
Konfigurasikan parameter terkait pengujian (opsional)
Anda dapat mengonfigurasi parameter terkait pengujian, seperti kompresi, encoding, jumlah thread, volume data, dan ukuran field, dalam file AHBench/conf/ahbench-settings.properties. Secara default, tidak diperlukan modifikasi. Anda dapat mengubah parameter sesuai kebutuhan skenario tertentu.
Beberapa parameter hanya didukung oleh versi Lindorm tertentu. Misalnya, kompresi ZSTD dan encoding INDEX hanya didukung oleh Lindorm. Anda dapat mengonfigurasi ZSTD dan INDEX untuk mencapai performa yang lebih baik.
# Konfigurasikan algoritma kompresi untuk tabel yang diuji. Opsi meliputi:
# NONE LZO ZSTD SNAPPY GZ LZ4 ZSTD, dll.
# Perhatikan bahwa beberapa sistem yang diuji mungkin tidak mendukung algoritma kompresi yang ditentukan.
# Lindorm merekomendasikan penggunaan ZSTD.
ahbench.table.compression=SNAPPY
# Konfigurasikan algoritma encoding untuk tabel yang diuji. Opsi meliputi:
# NONE DIFF INDEX
# Perhatikan bahwa beberapa sistem yang diuji mungkin tidak mendukung algoritma encoding yang ditentukan.
# Lindorm merekomendasikan penggunaan INDEX.
ahbench.table.encoding=DIFF
Mulai pengujian
-
Data pengujian cepat
Volume data pengujian adalah 10 juta baris. Total waktu proses sekitar 40 menit, tetapi dapat bervariasi tergantung pada sistem yang diuji. Pengujian ini memerlukan setidaknya 20 GB storage space.
cd AHBench ./fast_test -
Data pengujian lengkap
Volume data pengujian adalah 2 miliar baris. Total waktu proses sekitar 25 jam, tetapi dapat bervariasi tergantung pada sistem yang diuji. Pengujian ini memerlukan setidaknya 2 TB storage space.
cd AHBench ./full_testUntuk mengulangi pengujian ini, Anda dapat melewati fase impor data guna mengurangi waktu proses, asalkan pengujian sebelumnya berhasil dijalankan. Melewatkan fase impor mengurangi total waktu pengujian menjadi sekitar 3,5 jam. Waktu proses aktual dapat bervariasi tergantung pada sistem yang diuji.
cd AHBench ./full_test --skipload
Analisis hasil pengujian
Setelah pengujian selesai, file Comma-Separated Values (CSV) akan dihasilkan di direktori saat ini. Anda dapat menyalin hasil pengujian ke perangkat lunak analisis data, seperti Excel atau Numbers, untuk perbandingan dan analisis lebih lanjut.
-
Lihat nama file CSV tersebut.
ls -ltr -
Lihat isi file CSV yang ditentukan.
cat full_throughput.csv
Gambar berikut menunjukkan isi file CSV.

FAQ
Jika pengujian berhenti karena error, verifikasi hal-hal berikut:
-
JAVA_HOME dikonfigurasi dengan benar dan lingkungan runtime Python telah diinstal.
-
Titik akhir kluster yang diuji dimasukkan dengan benar.
-
Versi HBase kluster yang diuji dimasukkan dengan benar.
-
Menunjukkan apakah Kluster mendukung algoritma kompresi yang ditentukan.
-
Kluster yang diuji berjalan secara normal.