Alat uji
Topik ini menjelaskan cara melakukan uji benchmark untuk ApsaraDB for Cassandra dan memberikan hasil contoh berdasarkan pengujian. Hasil pengujian mungkin tidak mencerminkan kinerja optimal dari ApsaraDB for Cassandra karena hasil bervariasi tergantung pada kernel dan lingkungan cloud. Jika Anda ingin mengevaluasi ukuran instance ApsaraDB for Cassandra yang paling sesuai dengan kebutuhan bisnis Anda, gunakan pengujian yang dijelaskan dalam topik ini. Metode terbaik untuk evaluasi adalah menjalankan beban kerja simulasi pada instance ApsaraDB for Cassandra, yang menghasilkan hasil lebih akurat dibandingkan alat benchmarking eksternal.
Alat Uji
Gunakan Yahoo Cloud Serving Benchmark (YCSB) 0.15.0 untuk melakukan uji benchmark pada ApsaraDB for Cassandra. YCSB merupakan alat benchmarking standar. Untuk informasi lebih lanjut, kunjungi https://github.com/brianfrankcooper/YCSB/tree/0.15.0/cassandra.
Lingkungan Pengujian
Beli instance ApsaraDB for Cassandra untuk pengujian.
Jaringan: virtual private cloud (VPC). Pastikan klien dan server diterapkan di wilayah dan zona yang sama. Arsitektur instance: satu pusat data cloud dengan tiga node. Penyimpanan instance: SSD standar sebesar 400 GB per node. Kapasitas penyimpanan memengaruhi kinerja instance. Klien untuk uji stres: ecs.c6.2xlarge (8 vCPU, 16 GB). Spesifikasi instance: semua spesifikasi yang didukung oleh ApsaraDB for Cassandra.
Deskripsi Beban Kerja
Throughput dan latensi ApsaraDB for Cassandra bervariasi tergantung pada beban kerja, seperti jumlah bidang per baris dan ukuran data setiap baris. Dalam contoh ini, workloada default dari YCSB digunakan untuk pengujian. Anda dapat memodifikasi parameter YCSB sesuai kebutuhan bisnis. Pertahankan nilai default untuk sebagian besar parameter yang digunakan untuk menguji ApsaraDB for Cassandra. Untuk informasi lebih lanjut, kunjungi https://github.com/brianfrankcooper/YCSB/tree/0.15.0/cassandra.
Key parameters
10 bidang per baris (default).
1 KB per baris (default).
Rasio operasi baca/tulis: 95:5.
Tingkat konsistensi baca/tulis: ONE (default).
Jumlah replika: tentukan dua replika karena disk digunakan.
Thread uji stres: modifikasi berdasarkan spesifikasi instance. Untuk informasi lebih lanjut, lihat hasil pengujian.
recordcount: jumlah baris yang diimpor. Modifikasi parameter berdasarkan spesifikasi. Untuk informasi lebih lanjut, lihat hasil pengujian.
operationcount: jumlah kali uji stres. Nilai parameter ini sama dengan nilai parameter recordcount.
Pengaturan tingkat konsistensi dapat memengaruhi kinerja. Tentukan tingkat konsistensi berdasarkan kebutuhan bisnis Anda.
Prosedur
Langkah 1. Buat tabel uji
# Ganti cn-shanghai-g dengan ID pusat data cloud dari instance yang Anda beli. Anda dapat melihat parameter Nama Pusat Data di konsol ApsaraDB for Cassandra.
create keyspace ycsb WITH replication = {'class': 'NetworkTopologyStrategy', 'cn-shanghai-g': 2};
create table ycsb.usertable (y_id varchar primary key, field0 varchar, field1 varchar, field2 varchar, field3 varchar, field4 varchar, field5 varchar, field6 varchar, field7 varchar, field8 varchar, field9 varchar);
Langkah 2. Instal alat benchmarking
wget https://github.com/brianfrankcooper/YCSB/releases/download/0.15.0/ycsb-cassandra-binding-0.15.0.tar.gz
tar -zxf ycsb-cassandra-binding-0.15.0.tar.gz
Langkah 3. Modifikasi kode workloads/workloada
Tambahkan konten berikut:
hosts=cds-xxxxxxxx-core-003.cassandra.rds.aliyuncs.com #Titik akhir database. Anda dapat melihat titik akhir di konsol ApsaraDB for Cassandra.
cassandra.username=cassandra #Akun harus diberi izin untuk membaca dan menulis keyspace ycsb.
cassandra.password=123456 #Jika Anda lupa kata sandi, Anda dapat mengubah kata sandi di konsol.
Langkah 4. Persiapkan data (uji tulis)
nohup ./bin/ycsb load cassandra2-cql -threads $THREAD_COUNT -P workloads/workloada -s > $LOG_FILE 2>&1 &
Hasil pengujian ini menunjukkan throughput tulis maksimum. Untuk menguji throughput maksimum, tingkatkan nilai $THREAD_COUNT dan periksa apakah throughput meningkat. Spesifikasi klien untuk uji stres harus sedang atau tinggi.
Langkah 5. Lakukan uji stres (uji baca dan tulis)
nohup ./bin/ycsb run cassandra2-cql -threads $THREAD_COUNT -P workloads/workloada -s > $LOG_FILE 2>&1 &
Hasil pengujian ini menunjukkan kinerja baca dan tulis.
Hasil Pengujian
Hasil pengujian dalam contoh ini hanya disediakan sebagai referensi. Throughput dan latensi bervariasi tergantung pada beban kerja. Anda dapat menggunakan parameter dan beban kerja yang berbeda, atau meningkatkan volume data pengujian (durasi lebih lama) untuk mendapatkan hasil yang paling sesuai dengan kebutuhan bisnis Anda. Spesifikasi klien dapat memengaruhi hasil pengujian. Hindari menggunakan instance bersama.
Deskripsi Hasil Pengujian
Load: persiapan data (uji tulis)
Run: uji stres (uji baca dan tulis)
OPS: operasi per detik, yang menunjukkan throughput keseluruhan.
WAVG: latensi tulis rata-rata. Unit: mikrodetik.
RAVG: latensi baca rata-rata. Unit: mikrodetik.
RP999: latensi tulis persentil ke-99,9. Unit: mikrodetik.
Thread: 100/100, yang menunjukkan jumlah thread pengujian pada fase persiapan data dibandingkan dengan jumlah thread pengujian pada fase uji stres.
Pengujian beban penuh dan pengujian reguler dilakukan selama fase uji stres.
80% Beban CPU
Spesifikasi | Thread | Volume Data (ribuan baris) | Load OPS | Load WAVG | Run OPS | Run WAVG | Run RAVG | Run RP95 | Run RP99 | Run RP999 |
|---|---|---|---|---|---|---|---|---|---|---|
4 vCPU 8 GB | 100/100 | 1.600 | 32.277 | 3.071 | 29.745 | 2.846 | 3.363 | 7.795 | 23.039 | 43.999 |
60% Beban CPU
Spesifikasi | Thread | Volume Data (ribuan baris) | Load OPS | Load WAVG | Run OPS | Run WAVG | Run RAVG | Run RP95 | Run RP99 | Run RP999 |
|---|---|---|---|---|---|---|---|---|---|---|
4 vCPU 8 GB | 100/16 | 1.600 | 32.063 | 3.093 | 16.721 | 514 | 974 | 1.879 | 3.047 | 28.063 |
Topik ini mencantumkan hasil pengujian dari instance yang menggunakan SSD standar. Disk ultra juga menyediakan IOPS tinggi. Ketika jumlah data dan spesifikasi instance kecil, dampak disk ultra terhadap kinerja mendekati dampak SSD terhadap kinerja. Penyimpanan bukan lagi hambatan kinerja. Oleh karena itu, disk ultra tidak digunakan dalam pengujian. Anda dapat menggunakan beban kerja simulasi berdasarkan skenario bisnis Anda untuk mendapatkan hasil yang lebih akurat. Dampak aplikasi juga harus dipertimbangkan. Misalnya, mekanisme pengumpulan sampah klien Java dapat meningkatkan latensi.