Dokumen di Framework Arsitektur Google Cloud ini memberikan rekomendasi untuk membantu Anda mengoptimalkan performa Compute Engine, Google Kubernetes Engine (GKE), dan resource serverless.
Compute Engine
Bagian ini berisi panduan untuk membantu Anda mengoptimalkan performa resource Compute Engine.
Melakukan penskalaan otomatis resource
Dengan grup instance terkelola (MIG), Anda dapat menskalakan aplikasi stateless yang di-deploy pada VM Compute Engine secara efisien. Dengan penskalaan otomatis, aplikasi Anda dapat terus memberikan performa yang dapat diprediksi saat beban meningkat. Dalam MIG, sekelompok VM Compute Engine diluncurkan berdasarkan template yang Anda tentukan. Di template, Anda mengonfigurasi kebijakan penskalaan otomatis yang menentukan satu atau beberapa sinyal yang digunakan autoscaler untuk menskalakan grup. Sinyal penskalaan otomatis dapat dibuat berdasarkan jadwal, seperti waktu mulai atau durasi, atau berdasarkan metrik target seperti penggunaan CPU rata-rata. Untuk informasi selengkapnya, lihat Penskalaan otomatis grup instance.
Nonaktifkan SMT
Setiap CPU virtual (vCPU) yang Anda alokasikan ke VM Compute Engine diimplementasikan sebagai hardware multithread tunggal. Secara default, dua vCPU berbagi core CPU fisik. Arsitektur ini disebut simultaneous multi-threading (SMT).
Untuk workload dengan paralel tingkat tinggi atau yang melakukan penghitungan floating point (seperti transcoding, simulasi Monte Carlo, analisis urutan genetik, dan pemodelan risiko keuangan), Anda dapat meningkatkan performa dengan menonaktifkan SMT. Untuk informasi selengkapnya, lihat Menetapkan jumlah thread per core.
Menggunakan GPU
Untuk workload seperti machine learning dan visualisasi, Anda dapat menambahkan unit pemrosesan grafis (GPU) ke VM. Compute Engine memberikan GPU NVIDIA dalam mode passthrough sehingga VM Anda memiliki kontrol langsung atas GPU dan memori terkait. Untuk workload yang membutuhkan banyak grafis seperti visualisasi 3D, Anda dapat menggunakan workstation virtual NVIDIA RTX. Setelah Anda men-deploy workload, pantau penggunaan GPU dan tinjau opsi untuk mengoptimalkan performa GPU.
Gunakan jenis mesin yang dioptimalkan untuk komputasi
Workload seperti game, transcoding media, dan komputasi berperforma tinggi (HPC) memerlukan performa tinggi yang konsisten per core CPU. Google merekomendasikan agar Anda menggunakan jenis mesin yang dioptimalkan untuk komputasi bagi VM yang menjalankan workload tersebut. VM yang dioptimalkan untuk komputasi dibangun pada arsitektur yang menggunakan fitur seperti akses memori tidak seragam (NUMA) untuk performa yang optimal dan andal.
Workload HPC yang dikaitkan erat memiliki serangkaian persyaratan unik untuk mencapai efisiensi performa tertinggi. Untuk informasi selengkapnya, lihat dokumentasi berikut:
- Sistem file paralel untuk workload HPC
- Arsitektur: Sistem file Lustre di Google Cloud menggunakan DDN EXAScaler
Pilih penyimpanan yang sesuai
Google Cloud menawarkan berbagai opsi penyimpanan untuk VM Compute Engine: Persistent disk, disk solid state drive (SSD) lokal, Filestore, dan Cloud Storage. Untuk rekomendasi desain dan praktik terbaik dalam mengoptimalkan performa setiap opsi penyimpanan ini, lihat Mengoptimalkan performa penyimpanan.
Google Kubernetes Engine
Bagian ini berisi panduan untuk membantu Anda mengoptimalkan performa resource Google Kubernetes Engine (GKE).
Melakukan penskalaan otomatis resource
Anda dapat secara otomatis mengubah ukuran node pool dalam cluster GKE agar sesuai dengan beban saat ini menggunakan fitur autoscaler cluster. Dengan penskalaan otomatis, aplikasi Anda dapat terus memberikan performa yang dapat diprediksi saat beban meningkat. Autoscaler cluster mengubah ukuran node pool secara otomatis berdasarkan permintaan resource (bukan penggunaan resource sebenarnya) Pod yang berjalan di node. Saat Anda menggunakan penskalaan otomatis, mungkin ada kompromi antara performa dan biaya. Tinjau praktik terbaik untuk mengonfigurasi penskalaan otomatis cluster secara efisien.
Menggunakan VM C2D
Anda dapat meningkatkan performa workload dalam container yang membutuhkan komputasi intensif menggunakan jenis mesin C2D. Anda dapat menambahkan node C2D ke cluster GKE dengan memilih jenis mesin C2D di node pool Anda.
Nonaktifkan SMT
Multi-threading simultan (SMT) dapat meningkatkan throughput aplikasi secara signifikan untuk tugas komputasi umum dan untuk workload yang membutuhkan I/O tinggi. Namun, untuk workload yang kedua core virtualnya terikat komputasi, SMT dapat menyebabkan performa yang tidak konsisten. Untuk mendapatkan performa yang lebih baik dan lebih dapat diprediksi, Anda dapat menonaktifkan SMT untuk node GKE dengan menetapkan jumlah vCPU per core ke 1.
Menggunakan GPU
Untuk workload yang membutuhkan komputasi intensif seperti pengenalan image dan transcoding video, Anda dapat mempercepat performa dengan membuat node pool yang menggunakan GPU. Untuk informasi selengkapnya, lihat Menjalankan GPU.
Menggunakan load balancing berbasis container
Load balancing asal container memungkinkan load balancer mendistribusikan traffic secara langsung dan merata ke Pod. Pendekatan ini memberikan performa jaringan yang lebih baik dan peningkatan visibilitas pada latensi jaringan antara load balancer dan Pod. Manfaat ini menjadikan load balancing asal container sebagai solusi yang direkomendasikan untuk melakukan load balancing melalui Ingress.
Menentukan kebijakan penempatan rapat
Workload batch yang dikaitkan erat memerlukan latensi jaringan yang rendah antar-node dalam node pool GKE. Anda dapat men-deploy workload tersebut ke node pool zona tunggal, dan memastikan bahwa node saling berdekatan secara fisik dengan menetapkan kebijakan penempatan rapat. Untuk mengetahui informasi selengkapnya, lihat Menentukan penempatan rapat untuk node GKE.
Layanan komputasi serverless
Bagian ini berisi panduan untuk membantu Anda mengoptimalkan performa layanan komputasi serverless di Google Cloud: Cloud Run dan Cloud Functions. Layanan ini menyediakan kemampuan penskalaan otomatis, sementara infrastruktur dasar menangani penskalaan secara otomatis. Berkat layanan serverless ini, Anda dapat mengurangi upaya penskalaan microservice dan fungsi Anda, serta berfokus pada pengoptimalan performa di level aplikasi.
Untuk informasi selengkapnya, lihat dokumentasi berikut:
- Mengoptimalkan performa untuk layanan Cloud Run
- Mengoptimalkan aplikasi Java untuk Cloud Run
- Mengoptimalkan performa di Cloud Functions
Langkah selanjutnya
Tinjau praktik terbaik untuk mengoptimalkan performa resource penyimpanan, jaringan, database, dan analisis Anda:
- Mengoptimalkan performa penyimpanan.
- Mengoptimalkan performa jaringan.
- Mengoptimalkan performa database.
- Mengoptimalkan performa analisis.