Penentuan ukuran sumber daya yang akurat sebelum pembuatan kluster mencegah under-provisioning (yang menyebabkan penurunan kinerja saat beban tinggi) maupun over-provisioning (yang memboroskan biaya). Topik ini menyediakan rumus penentuan ukuran dan spesifikasi yang direkomendasikan untuk setiap kelompok node dalam kluster E-MapReduce (EMR) yang menjalankan Kafka. Setelah estimasi awal, validasi menggunakan kafka-producer-perf-test dan kafka-consumer-perf-test, lalu gunakan fitur scale-out untuk menyesuaikan konfigurasi seiring perubahan workload Anda.
Penentuan ukuran kluster Kafka bergantung pada trafik pesan puncak, ukuran rata-rata pesan, jumlah partisi, faktor replikasi, dan jumlah client. Kumpulkan metrik bisnis aktual sebelum menerapkan rumus berikut.
Ikhtisar kelompok node
Tabel berikut merangkum spesifikasi yang direkomendasikan untuk setiap kelompok node. Panduan penentuan ukuran terperinci dan rumusnya dijelaskan pada bagian-bagian selanjutnya.
| Kelompok node | Peran | Nodes | CPU | Memori | Disk sistem | Data disk |
|---|---|---|---|---|---|---|
| Master | ZooKeeper + komponen ekosistem | 3 | 4 core | 8 GiB | 80 GiB | disk cloud 120 GiB |
| Core | broker Kafka | Lihat Jumlah broker | 16 core | 64 GiB | 80 GiB | 4 x disk cloud (ukuran bervariasi) |
| Task (opsional) | Kafka Connect | >2 | >8 core | Berdasarkan konektor | — | disk cloud >80 GiB |
Kelompok node master (ZooKeeper)
Kelompok node master menjalankan ZooKeeper serta komponen ekosistem Kafka: Kafka Manager, Schema Registry, dan REST Proxy.
Konfigurasikan tiga node master dengan spesifikasi berikut:
| Sumber Daya | Nilai yang direkomendasikan |
|---|---|
| Node | 3 |
| CPU | 4 core |
| Memori | 8 GiB |
| Rasio CPU-memori | 1:2 |
| Disk sistem | 80 GiB |
| Data disk | disk cloud 120 GiB |
Kelompok node core (broker Kafka)
Parameter bisnis
Kumpulkan parameter bisnis berikut sebelum menghitung jumlah broker dan ukuran disk:
| Parameter | Deskripsi | Bawaan |
|---|---|---|
| Faktor fan-out | Jumlah kali node downstream mengonsumsi data bisnis, tidak termasuk replikasi dalam kluster | — |
| Trafik inbound puncak | Throughput data bisnis puncak (MB/s) | — |
| Trafik inbound rata-rata | Throughput data bisnis rata-rata (MB/s) | — |
| Periode retensi data | Durasi penyimpanan data (hari) | 7 hari |
| Faktor replikasi partisi | Jumlah replika per partisi | 3 |
Trafik puncak biasanya satu orde lebih tinggi daripada trafik rata-rata. Tetapkan nilai trafik inbound puncak secara tepat dan pertahankan kapasitas redundan yang memadai agar kluster tetap dapat memberikan layanan di bawah beban ekstrem.
Gunakan parameter tersebut untuk menghitung metrik tingkat kluster berikut:
| Metrik | Rumus |
|---|---|
| Total trafik tulis puncak | Trafik inbound puncak x Faktor replikasi partisi |
| Total trafik baca puncak | Trafik inbound puncak x (Faktor fan-out + Faktor replikasi partisi - 1) |
| Total kapasitas penyimpanan | Trafik inbound rata-rata x Periode retensi data x Faktor replikasi partisi |
Spesifikasi node yang direkomendasikan
Konfigurasikan node core dengan spesifikasi berikut:
| Sumber daya | Nilai yang direkomendasikan |
|---|---|
| CPU | 16 core |
| Memori | 64 GiB |
| Rasio CPU-memori | 1:4 |
| Disk sistem | 80 GiB |
| Data disk | 4 x disk cloud (ukuran dihitung di bawah) |
Tipe disk. Gunakan disk cloud sebagai data disk untuk menghindari beban operasi dan maintenance (O&M) akibat kegagalan disk fisik. Hal ini meningkatkan ketersediaan layanan dan menurunkan biaya tenaga kerja O&M.
Setelah memilih tipe dan jumlah disk, hitung total throughput I/O disk node tersebut. Pilih network interface card (NIC) dengan bandwidth lebih besar dari atau sama dengan total throughput I/O disk.
Jumlah broker
Dalam kondisi ideal, batas throughput broker Kafka ditentukan oleh throughput I/O disk atau bandwidth NIC-nya. Gunakan langkah-langkah berikut untuk menghitung jumlah broker yang diperlukan.
Langkah 1: Hitung throughput disk per node.
Throughput disk per node = Throughput per disk x Jumlah data diskSebagai referensi: throughput maksimum SSD Perusahaan (ESSD) PL1 adalah 350 MB/s. Untuk disk lokal, gunakan separuh nilai teoretis sebagai throughput efektif—biasanya 50 MB/s.
Untuk informasi performa disk terperinci, lihat Performa block storage.
Langkah 2: Hitung jumlah broker berdasarkan trafik.
Dengan faktor replikasi 3, gunakan minimal 4 broker agar partisi dengan 3 replika tetap dapat dibuat jika satu broker tidak tersedia sementara. Pertahankan kapasitas redundan 50%:
Jumlah broker = Max(4, (Total trafik baca puncak + Total trafik tulis puncak) / Throughput disk per node / 50%)Langkah 3: Periksa terhadap batas replika partisi.
Jika jumlah total replika partisi besar, lakukan cross-check menggunakan rumus berbasis partisi:
Jumlah broker = Max(4, Jumlah total partisi x Faktor replikasi partisi / 2.000)Batas replika partisi:
| Batas | Nilai |
|---|---|
| Jumlah maksimum replika per broker yang direkomendasikan | 2.000 |
| Jumlah maksimum replika per broker mutlak | 4.000 |
| Jumlah maksimum replika per kluster mutlak | 200.000 |
Langkah 4: Hitung ukuran disk per broker.
Ukuran disk per broker = Total kapasitas penyimpanan / Jumlah broker / Jumlah data disk per node / 50%Scaling setelah pembuatan kluster
Cadangan redundansi 50% yang dibangun dalam rumus penentuan ukuran menjaga kluster di bawah ambang batas beban tempat pembatasan kecepatan (throttling) dimulai. Setelah kluster dibuat, pantau penggunaan sumber daya dan gunakan fitur scale-out untuk menyesuaikan konfigurasi berdasarkan penggunaan sumber daya aktual.
Kelompok node task (Kafka Connect) (opsional)
Kelompok node task bersifat opsional dan menjalankan Kafka Connect. Ukurannya dapat diubah sewaktu-waktu setelah pembuatan kluster berdasarkan penggunaan sumber daya aktual.
Konfigurasikan node task dengan spesifikasi berikut:
| Sumber daya | Nilai yang direkomendasikan |
|---|---|
| Node | >2 (untuk ketersediaan tinggi) |
| CPU | >8 core per node; tingkatkan berdasarkan penggunaan CPU konektor |
| Memori | Berdasarkan jenis konektor dan penggunaan memori |
| Rasio CPU-memori | 1:2 atau 1:4 |
| Data disk | disk cloud >80 GiB |