Ringkasan
Apigee Hybrid mendukung payload pesan besar hingga 30 MB. Mulai dari hybrid 1.15.1, hybrid dapat mengizinkan payload pesan besar hingga 75 MB. Ukuran payload pesan default adalah 10 MB. Lihat Ukuran payload pesan.
Mengonfigurasi dukungan untuk payload pesan hingga 30 MB
Untuk mengaktifkan lingkungan dalam penginstalan hybrid Anda agar mendukung payload pesan besar, Anda harus melakukan perubahan berikut pada konfigurasi runtime:
- Perbesar ukuran heap menjadi minimal 4Gi.
- Tingkatkan batas memori menjadi minimal 6Gi.
- Tingkatkan permintaan resource memori menjadi minimal 4 Gi.
Anda dapat mengonfigurasi setelan ini untuk setiap lingkungan atau untuk semua lingkungan dalam penginstalan Anda.
Mengonfigurasi setiap lingkungan untuk mendukung payload pesan besar
Jika proxy yang dikonfigurasi untuk mendukung payload pesan besar hanya memiliki endpoint di satu atau beberapa lingkungan dalam penginstalan Anda, Anda dapat mengonfigurasi lingkungan untuk mendukung payload besar. Hal ini menghindari penambahan memori tambahan ke lingkungan yang tidak perlu mendukung payload besar.
Untuk mengonfigurasi setiap lingkungan agar mendukung payload pesan besar, Anda dapat menggunakan properti envs.components.runtime. Buat perubahan berikut pada file overrides.yaml Anda:
-
Tambahkan stanza berikut ke file
overrides.yamlAnda:envs: - name: ENV_NAME components. runtime: cwcAppend: bin_setenv_max_mem: 4096Mi # Increase max heap size to 4 gigs resources: requests: memory: 4Gi limits: memory: 6GiLihat:
-
Upgrade diagram
apigee-envuntuk setiap lingkungan yang Anda perbarui:Uji coba:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
- ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade
diagram
apigee-env. Nama ini harus unik dari nama rilis Helm lainnya di penginstalan Anda. Biasanya ini sama denganENV_NAME. Namun, jika lingkungan Anda memiliki nama yang sama dengan grup lingkungan, Anda harus menggunakan nama rilis yang berbeda untuk lingkungan dan grup lingkungan, misalnyadev-env-releasedandev-envgroup-release. Untuk mengetahui informasi selengkapnya tentang rilis di Helm, lihat Tiga konsep penting di dokumentasi Helm. - ENV_NAME adalah nama lingkungan yang Anda upgrade.
- OVERRIDES_FILE adalah file
overrides.yamlyang telah Anda edit.
- ENV_RELEASE_NAME adalah nama yang digunakan untuk melacak penginstalan dan upgrade
diagram
-
Mengupgrade diagram:
Uji coba:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Mengonfigurasi semua lingkungan untuk mendukung payload pesan berukuran besar
Perubahan pada stanza runtime akan menetapkan batas heap dan memori untuk semua lingkungan dalam penginstalan Anda. Anda dapat mengganti setelan ini untuk setiap lingkungan dengan properti envs.components.runtime.
-
Tambahkan stanza berikut ke file
overrides.yamlAnda:runtime: cwcAppend: bin_setenv_max_mem: 4096Mi # Increase max heap size to 4 gigs resources: requests: memory: 4Gi limits: memory: 6GiLihat:
-
Upgrade diagram
apigee-envuntuk setiap lingkungan dalam penginstalan Anda:Uji coba:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE \ --dry-run=server
Mengupgrade diagram:
helm upgrade ENV_RELEASE_NAME apigee-env/ \ --install \ --namespace APIGEE_NAMESPACE \ --set env=ENV_NAME \ -f OVERRIDES_FILE
Panduan untuk payload pesan berukuran antara 30 MB dan 75 MB
Menentukan ukuran heap yang optimal untuk Pemroses Pesan untuk skenario payload besar bergantung pada kasus penggunaan spesifik Anda; namun, Apigee menawarkan panduan umum untuk membantu proses ini.
Untuk menghitung ukuran heap per Pemroses Pesan (MP), gunakan nilai berikut:
Q- QPS maks per pod MPL- Latensi Round Trip per permintaan (persentil ke-95 dari latensi yang diharapkan)C- Total konkurensi per MP, jumlah maksimum permintaan yang dapat secara bersamaan tetap ada di MP pada waktu tertentu. Hal ini dihitung sebagaiC = Q * L.P_req- Ukuran payload (dalam MB) permintaan yang dikirim oleh Klien ke ApigeeP_resp- Ukuran payload (dalam MB) respons yang diterima dari TargetS- Faktor Keamanan (Apigee merekomendasikan rentang 1,5 - 2)BASE_HEAP- Ukuran heap dasar untuk memperhitungkan resource yang tidak terkait dengan permintaan seperti konfigurasi proxy. (Apigee merekomendasikan3072Mi)
Dengan memperhitungkan faktor keamanan S, beserta ukuran heap dasar, total heap per
MP dihitung sebagai berikut:
Ukuran heap per MP = BASE_HEAP + C * (P_req + P_resp) * S
Konfigurasi penggantian dasar untuk skenario Payload Besar adalah:
envs:
components:
runtime:
resources:
requests:
cpu: 2000m
memory: 2Gi
limits:
cpu: 4000m
memory: 4Gi
cwcAppend:
bin_setenv_max_mem: 3072Mi # base heap size
Contoh penghitungan
Berikut adalah contoh penghitungan dengan nilai berikut:
- QPS Maks,
Q: 2 - Latensi,
L: 7 dtk - Ukuran payload permintaan,
P_req: 40 MB - Ukuran payload respons,
P_resp: 40 MB - Faktor keamanan,
S: 1,5 - Ukuran heap dasar,
BASE_HEAP: 3072 Mi
Ukuran heap = 3072 + (2 * 7) * (40+40) * 1.5 = 4752Mi
limits.memory diperkirakan berukuran 1 GiB lebih besar dari heap yang direkomendasikan.
Dalam contoh ini, Anda akan menambahkan hal berikut ke overrides.yaml:
envs:
components:
runtime:
resources:
requests:
memory: 4Gi
limits:
memory: 5.75Gi # approximately 1Gi over 4.75Gi
cwcAppend:
bin_setenv_max_mem: 4752Mi
Pertimbangan
Lonjakan Traffic
HPA memastikan bahwa MP diskalakan saat QPS meningkat. Namun, Anda dapat memperkirakan HPA memerlukan waktu sekitar 60 detik untuk memicu penskalaan. Lonjakan traffic yang terlalu tinggi dapat menyebabkan error Kehabisan Memori (OOM) di MP Anda.
Jika Anda mengantisipasi lonjakan traffic seperti itu, tingkatkan penggunaan heap dengan menggunakan faktor keamanan yang
tampaknya sesuai. Misalnya, S = 2.
Heap = BASE_HEAP + (Q * L) * (P_req + P_resp) * 2
Penggunaan Kebijakan
Penghitungan di atas tidak mencakup penggunaan Kebijakan. Apigee memungkinkan pelanggan membuat salinan payload permintaan / respons mereka dan hal ini dapat mengubah penggunaan heap secara signifikan.
Misalnya, jika Anda memiliki kebijakan JavaScript yang membuat 3 salinan seluruh respons target Anda, persamaan yang digunakan adalah:
Heap per MP = Base Heap + (Q * L) * (P_req + P_resp * 4) * S
Contoh kebijakan yang berpotensi meningkatkan penggunaan memori adalah:
- AssignMessage
- Pesan Singkat JavaScript
- JavaCallout
Pemantauan
Panduan yang diberikan di sini dimaksudkan untuk berfungsi sebagai titik awal. Pemantauan dan pemberitahuan penggunaan memori sangat disarankan. Gunakan Faktor Keamanan yang lebih tinggi jika penggunaan Heap selalu tinggi.
Lihat juga:
- Ukuran payload pesan
envs[].components.runtime.resources.limits.memoryenvs[].components.runtime.resources.requests.memoryruntime.resources.limits.memoryruntime.resources.requests.memory