Dokumen ini menjelaskan cara menggunakan rangkaian benchmark Nexmark untuk mengevaluasi kinerja pemrosesan aliran Realtime Compute for Apache Flink.
Kinerja sekilas
Nexmark adalah rangkaian benchmark standar industri untuk mesin pemrosesan aliran yang mencakup 21 kueri, meliputi skenario umum seperti filtering, agregasi, JOIN, dan window. Dokumen ini menyajikan evaluasi kinerja komprehensif terhadap Realtime Compute for Apache Flink menggunakan rangkaian benchmark Nexmark dengan konfigurasi 8 CU dan garis dasar 100 juta input record. Hasilnya menunjukkan:
RPS untuk kueri sederhana, seperti q0, q1, dan q2, dapat mencapai 4 hingga 6,5 juta.
RPS untuk kueri agregasi dan window kompleks, seperti q4, q5, dan q16, berkisar antara 150.000 hingga 630.000.
Tool pengujian
Nexmark adalah rangkaian benchmark kinerja standar untuk mesin pemrosesan aliran. Model pengujian terdiri dari komponen berikut:
Tabel sumber Nexmark: Menghasilkan data uji (event Person, Auction, dan Bid) pada laju tertentu.
Transformasi: 21 kueri standar Nexmark yang mencakup skenario umum seperti filtering, transformasi, agregasi, JOIN, dan window.
Tabel hasil blackhole: Menulis data ke sink blackhole untuk menghilangkan gangguan kinerja dari penyimpanan eksternal, sehingga fokus evaluasi tertuju pada kemampuan pemrosesan mesin Flink.
Tool pengujian Nexmark yang digunakan dalam dokumen ini dibangun di atas OpenAPI Realtime Compute for Apache Flink. Tool ini mengotomatiskan seluruh alur kerja, termasuk pembuatan pekerjaan, penerapan, pemantauan waktu proses, dan pengumpulan hasil. Anda tidak perlu menulis SQL atau membuat pekerjaan secara manual di Konsol.
Lingkungan pengujian
Pekerjaan Flink dalam pengujian ini menggunakan konfigurasi optimasi berikut:
Parameter | Nilai | Deskripsi |
table.exec.mini-batch.enabled | true | Mengaktifkan agregasi Mini-Batch. |
table.exec.mini-batch.allow-latency | 2s | Interval buffering untuk Mini-Batch. |
table.optimizer.distinct-agg.split.enabled | true | Mengaktifkan optimasi split untuk agregasi Distinct. |
execution.checkpointing.interval | 3min | Interval checkpoint. |
Prasyarat
Java Development Kit (JDK) 1.8.x atau versi lebih baru.
Ruang kerja aktif. Untuk informasi selengkapnya, lihat Aktifkan Realtime Compute for Apache Flink.
ID AccessKey dan AccessKey Secret untuk Akun Alibaba Cloud Anda.
Prosedur
Langkah 1: Unduh tool pengujian
Unduh dan ekstrak paket tool pengujian Nexmark nexmark-flink.tar.gz.
Setelah diekstrak, struktur direktorinya adalah sebagai berikut:
nexmark-flink/
├── run_nexmark.sh # Skrip entri pengujian
├── nexmark_env.sh # File konfigurasi variabel lingkungan (perlu diedit)
├── bin/ # Skrip waktu proses
├── conf/ # Konfigurasi pekerjaan Flink
├── lib/ # Paket JAR (akan diunggah ke Konsol)
└── queries-vvp/ # File SQL Kueri NexmarkLangkah 2: Unggah JAR Nexmark
Masuk ke Konsol Realtime Compute for Apache Flink.
Klik untuk masuk ke namespace target, lalu pada bilah navigasi kiri, pilih .
Pilih dan unggah file
nexmark-flink-0.2-SNAPSHOT.jar. File ini berada di direktorinexmark-flink/libdari tool pengujian.Setelah pengunggahan selesai, klik nama file untuk menyalin path OSS-nya. Anda akan memerlukan path ini sebagai parameter pada langkah berikutnya. Format path file bervariasi tergantung jenis penyimpanan:
Penyimpanan Bucket OSS:
oss://<nama-bucket-anda>/artifacts/namespaces/<namespace-anda>/<nama-file-anda>Contoh:
oss://oss-test/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jarPenyimpanan Fully Managed:
oss://flink-fullymanaged-<id-ruang-kerja-anda>/artifacts/namespaces/<namespace-anda>/<nama-file-anda>Contoh: oss://flink-fullymanaged-e6a123456789/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jar
Untuk melihat jenis penyimpanan ruang kerja Anda, buka Konsol Realtime Compute for Apache Flink, temukan ruang kerja target, lalu klik Details pada kolom Actions.
Langkah 3: Konfigurasikan parameter waktu proses
Edit file nexmark-flink/nexmark_env.sh dan konfigurasikan parameter berikut.
Parameter | Deskripsi | Contoh |
END_POINT | Titik akhir layanan untuk Realtime Compute for Apache Flink. Pilih titik akhir berdasarkan Wilayah Anda. Untuk informasi selengkapnya, lihat Titik akhir layanan. | ververica.cn-hangzhou.aliyuncs.com |
AK | ID AccessKey Akun Alibaba Cloud Anda. | - |
SK | AccessKey Secret Akun Alibaba Cloud Anda. | - |
WORK_SPACE | ID ruang kerja Anda. | e6a123456789 |
NAMESPACE | Namespace ruang kerja Anda. | flink-default |
NE*******AR | Path OSS dari paket JAR yang telah Anda unggah di Langkah 2. | oss://flink-fullymanaged-e6a123456789/artifacts/namespaces/flink-default/nexmark-flink-0.2-SNAPSHOT.jar |
FLINK_VERSION | Versi mesin Flink yang akan diuji. | vvr-11.6-jdk11-flink-1.20 |
QUERIES | Kueri yang akan dijalankan. Pisahkan beberapa kueri dengan koma, misalnya | all |
Menjalankan semua kueri dapat memakan waktu lama karena setiap kueri melibatkan tahapan seperti pembuatan pekerjaan, pembuatan data, dan komputasi. Kami menyarankan Anda menjalankan satu kueri terlebih dahulu (misalnya dengan mengatur QUERIES ke q0) untuk memverifikasi bahwa lingkungan dan parameter telah dikonfigurasi dengan benar sebelum menjalankan seluruh rangkaian pengujian.
Langkah 4: Jalankan pengujian
Pada direktori
nexmark-flink, jalankan perintah berikut../run_nexmark.shTool pengujian secara otomatis membuat dan menjalankan pekerjaan Nexmark menggunakan OpenAPI.
Setelah pengujian selesai, output menampilkan durasi setiap kueri dalam milidetik. Contoh output:
INFO com.github.nexmark.flink.vvp.Nexmark - q0 13078 ============================================================================ ✓ Benchmark execution completed successfully ============================================================================
Hasil kinerja
Tabel berikut menunjukkan hasil kinerja 21 kueri Nexmark pada Realtime Compute for Apache Flink dengan konfigurasi 8 CU. Setiap kueri memproses 100 juta input record. RPS dihitung dengan membagi jumlah input record dengan durasi.
Data berikut dikumpulkan dalam lingkungan pengujian tertentu. Kinerja aktual dapat bervariasi tergantung pada pembaruan perangkat keras dan mesin. Hasil ini hanya untuk referensi.
Kueri | Durasi (ms) | RPS |
q0 | 23450 | 4.264.392 |
q1 | 22824 | 4.381.353 |
q2 | 15224 | 6.568.576 |
q3 | 21558 | 4.638.649 |
q4 | 157117 | 636.468 |
q5 | 679277 | 147.215 |
q7 | 333837 | 299.547 |
q8 | 29939 | 3.340.125 |
q9 | 266563 | 375.146 |
q10 | 51202 | 1.953.049 |
q11 | 145983 | 685.011 |
q12 | 36991 | 2.703.360 |
q14 | 20012 | 4.997.002 |
q15 | 42734 | 2.340.057 |
q16 | 337293 | 296.478 |
q17 | 27076 | 3.693.308 |
q18 | 96335 | 1.038.044 |
q19 | 95121 | 1.051.293 |
q20 | 231482 | 431.999 |
q21 | 39693 | 2.519.336 |
q22 | 31228 | 3.202.254 |