Merencanakan ukuran cluster Managed Service for Apache Kafka

Dokumen ini menjelaskan cara memperkirakan kapasitas yang Anda butuhkan untuk cluster Managed Service for Apache Kafka, dan cara menyesuaikan ukuran cluster yang ada.

Saat membuat cluster Managed Service untuk Apache Kafka, Anda memilih parameter berikut untuk ukuran cluster:

  • vCPUs: Jumlah vCPU dalam cluster. Jumlah vCPU minimum adalah 3.

  • Memori: Jumlah memori per vCPU. Anda harus menyediakan antara 1 GiB dan 8 GiB per vCPU.

Anda dapat memperbarui nilai ini setelah cluster dibuat.

Memilih ukuran cluster awal

Untuk memilih ukuran cluster awal, mulailah dengan memperkirakan nilai berikut, berdasarkan workload tertentu Anda.

  • Throughput tulis: Total kecepatan produsen mengirim data ke cluster, dalam MBps.
  • Throughput baca: Total kecepatan konsumen membaca data dari cluster, dalam MBps.

Untuk memperkirakan ukuran cluster yang diperlukan untuk menangani throughput ini, lakukan langkah-langkah berikut:

  1. Hitung total bandwidth penulisan, termasuk replikasi.

    Total write bandwidth = produce rate * replicas

    Nilai ini mencakup bandwidth dari klien ke broker pemimpin, dan dari pemimpin ke broker replika. Jumlah replika default adalah 3.

  2. Menghitung total bandwidth baca, termasuk replikasi.

    Total read bandwidth = consume rate + produce rate * ( replicas - 1)

    Nilai ini mencakup bandwidth untuk operasi baca klien (tingkat penggunaan), ditambah bandwidth yang diperlukan agar replika tetap tersinkron. Replika disinkronkan dengan membaca data dari pemimpin partisi. Istilah (replicas - 1) digunakan karena pemimpin partisi tidak membaca dari replika mana pun.

  3. Hitung kecepatan data yang setara dengan penulisan.

    Sebagai aturan umum, bandwidth baca 4 kali lebih efisien untuk diproses daripada bandwidth tulis. Untuk memperhitungkan perbedaan ini, hitung kecepatan transfer data setara tulis sebagai berikut:

    Write-equivalent rate = (total write bandwidth) + (total read bandwidth / 4)

  4. Tentukan target pemanfaatan vCPU Anda. Nilai ini mewakili pemanfaatan vCPU rata-rata sebagai persentase kapasitas vCPU. Penggunaan sebenarnya dapat meningkat atau menurun dari waktu ke waktu.

    • Sebagai dasar pengukuran, mulailah dengan target pemanfaatan sebesar 50%.
    • Jika Anda mengetahui pola traffic yang diharapkan, tetapkan target pemanfaatan yang sama dengan rasio bandwidth setara penulisan rata-rata terhadap bandwidth puncak yang harus Anda akomodasi.

    Secara umum, peningkatan pemanfaatan akan menurunkan biaya cluster Anda dengan mengurangi ukurannya, tetapi juga lebih berisiko jika traffic melebihi perkiraan. Penggunaan vCPU yang berlebihan dapat menyebabkan latensi dan error yang tinggi.

  5. Hitung jumlah vCPU.

    vCPU count = ceiling (write-equivalent rate / 20 MBps / utilization)

    Estimasi kapasitas untuk satu vCPU di satu zona adalah 20 MBps. Oleh karena itu, jika vCPU berjalan dengan pemanfaatan 100%, Anda memerlukan (write-equivalent rate / 20) vCPU. Untuk mendapatkan jumlah sebenarnya, bagi nilai tersebut dengan target pemanfaatan dan bulatkan.

    Selain itu, mengirim pesan dalam batch yang lebih kecil dari 10 KB akan mengurangi throughput per CPU, dibandingkan dengan tolok ukur di sini. Dalam hal ini, perhitungkan kapasitas throughput yang berkurang atau pertimbangkan untuk mengirim batch yang lebih besar.

  6. Perkirakan memori yang diperlukan. Sebaiknya gunakan RAM 4 GiB untuk setiap vCPU.

    Memory = vCPU count * 4 GiB

Lakukan pengujian dengan beban kerja sebenarnya untuk mendapatkan ukuran yang paling akurat. Pantau penggunaan resource cluster dan lakukan peningkatan skala jika diperlukan.

Contoh penghitungan ukuran

Asumsikan bahwa workload memiliki kecepatan tulis 50 MBps dan kecepatan baca 100 MBps, dengan 3 replika dan target pemakaian vCPU sebesar 50%.

  1. Total write bandwidth = 50 MBps * 3 replicas = 150 MBps
  2. Total read traffic = 100 MBps + 50 MBps * (3 - 1) = 200 MBps
  3. Write-equivalent rate = 150 MBps + (200 MBps / 4) = 200 MBps
  4. Target utilization = 0.5
  5. Number of vCPUs = ceiling (200 MBps / 20 MBps / 0.5) = 20 vCPUs
  6. Memory = 20 vCPUs * 4 GiB = 80 GiB

Broker

Saat Anda membuat cluster, sistem akan menyediakan setidaknya satu broker di setiap tiga zona. Broker didistribusikan secara merata di seluruh zona, dan semua broker memiliki jumlah vCPU yang sama. Jumlah broker dapat dihitung dengan formula berikut:

number of brokers = max(3, ceiling(vCPUs / 15))

Misalnya, cluster dengan 75 vCPU dimulai dengan 5 broker.

Jika Anda mengubah jumlah vCPU, vCPU tersebut akan didistribusikan di seluruh broker yang ada, hingga maksimum 15 vCPU per broker. Jika Anda meningkatkan ukuran cluster hingga lebih dari 15 vCPU per broker, sistem akan menyediakan broker baru. Setelah disediakan, broker baru dapat di-scale down menjadi 1 vCPU, tetapi tidak dapat dihapus.

Memperbarui ukuran cluster

Setelah membuat cluster Managed Service for Apache Kafka, Anda dapat menyesuaikan jumlah vCPU dan memori untuk mengakomodasi kebutuhan Anda. Saat Anda mengupdate cluster yang ada, aturan berikut berlaku:

  • Rasio vCPU ke memori keseluruhan cluster harus selalu berada di antara 1:1 dan 1:8.

  • Jika Anda melakukan penurunan skala, harus ada minimal 1 vCPU dan 1 GiB memori untuk setiap broker yang ada. Jumlah broker tidak pernah berkurang.

  • Jika Anda melakukan penskalaan ke atas, dan perubahan tersebut mengakibatkan penambahan broker baru, vCPU dan memori rata-rata per broker tidak boleh berkurang lebih dari 10% dibandingkan dengan rata-rata sebelum update.

    Misalnya, jika Anda mencoba meng-upgrade cluster dari 45 vCPU (3 broker) menjadi 48 vCPU (4 broker), operasi akan gagal. Hal ini karena vCPU rata-rata per broker berkurang dari 15 menjadi 12, yang merupakan pengurangan sebesar 20%, melebihi batas 10%.

Jika Anda perlu mengurangi jumlah CPU lebih dari 10%, sebaiknya kurangi jumlahnya dalam beberapa tahap. Setelah setiap pembaruan, pantau pemakaian resource dan seimbangkan ulang partisi jika diperlukan.

Namun, jika Anda yakin bahwa broker Anda akan memiliki kapasitas yang cukup setelah update, Anda dapat menonaktifkan pemeriksaan ini. Untuk menonaktifkan pemeriksaan, setel flag allow_broker_downscale_on_cluster_upscale ke true dalam perintah gcloud managed-kafka clusters update. Flag ini menandakan bahwa Anda menerima potensi risiko performa.

Untuk memperbarui cluster, lihat Memperbarui cluster Managed Service for Apache Kafka.

Contoh operasi pembaruan

Contoh berikut dimulai dengan cluster yang memiliki 75 vCPU, RAM 130 GiB, dan 5 broker.

Contoh operasi peningkatan kualitas yang gagal

Tingkatkan skala cluster menjadi 80 vCPU dan 140 GiB RAM.

  • Layanan menentukan apakah broker baru diperlukan.

    • ceiling (80 vCPU / 15) = 6 broker

    Cluster akan bertambah dari 5 menjadi 6 broker, sehingga pemeriksaan keamanan 10% dipicu.

  • Rata-rata saat ini per pialang adalah:

    • 75 vCPU / 5 broker = 15 vCPU per broker

    • 130 GiB / 5 broker = 26 GiB per broker

  • Dengan 6 broker, rata-rata baru adalah:

    • 80 vCPU / 6 broker = 13,33 vCPU per broker, pengurangan 11,1%

    • 140 GiB / 6 broker = 23,33 GiB per broker, pengurangan 10,2%

    Operasi gagal, karena rata-rata ini melebihi 10%.

Contoh operasi peningkatan kualitas yang berhasil

Tingkatkan skala cluster menjadi 85 vCPU dan 150 GiB RAM.

  • Layanan menentukan apakah broker baru diperlukan.

    • ceiling (85 vCPU / 15) = 6 broker

    Cluster akan bertambah dari 5 menjadi 6 broker, sehingga pemeriksaan keamanan 10% dipicu.

  • Rata-rata saat ini per pialang adalah:

    • 75 vCPU / 5 broker = 15 vCPU per broker

    • 130 GiB / 5 broker = 26 GiB per broker

  • Dengan 6 broker, rata-rata baru adalah:

    • 85 vCPU / 6 broker = 14,17 vCPU per broker, penurunan 5,5%

    • 150 GiB / 6 broker = 25 GiB per broker, pengurangan 3,8%

Operasi ini berhasil karena pengurangan vCPU dan memori rata-rata per broker berada dalam batas 10%.

Langkah berikutnya