VM N4, yang didukung oleh prosesor Intel Xeon generasi ke-5 dan Titanium, menggunakan pengelolaan resource dinamis generasi berikutnya untuk mendorong efisiensi biaya dengan lebih mengoptimalkan pemanfaatan resource fisik yang tersedia di mesin host, dan juga menggunakan penjadwal CPU yang dibuat khusus dan migrasi langsung yang peka performa untuk menyeimbangkan kebutuhan performa beban kerja dengan resource yang tersedia. Ini adalah teknologi yang sama dengan yang digunakan layanan Google Penelusuran, Google Ads, Google Maps, dan YouTube untuk menjalankan workload sensitif-latensi mereka secara efisien.
Pengelolaan resource dinamis generasi berikutnya juga memiliki afinitas NUMA yang lebih baik, prediksi persyaratan resource yang lebih akurat, dan penyeimbangan ulang yang lebih cepat menggunakan migrasi langsung yang memperhatikan performa.
Cara kerja pengelolaan resource dinamis
CPU virtual (vCPU) diimplementasikan sebagai thread yang dijadwalkan untuk berjalan secara on-demand seperti thread lain mana pun yang ada di sebuah host. Saat vCPU memiliki pekerjaan yang harus dilakukan, pekerjaan tersebut ditetapkan ke CPU fisik yang tersedia, yang akan berjalan hingga tidak aktif kembali. Demikian pula, RAM virtual dipetakan ke halaman host fisik menggunakan tabel halaman yang diisi saat halaman fisik tamu pertama kali diakses. Pemetaan ini terus ditetapkan hingga VM menunjukkan bahwa halaman fisik tamu tidak lagi diperlukan.
Pengelolaan resource dinamis memungkinkan Compute Engine memanfaatkan CPU fisik yang tersedia secara lebih baik, dengan menjadwalkan VM ke server berdasarkan permintaan resource, dan menjadwalkan thread vCPU ke CPU fisik sedemikian rupa sehingga waktu tunggu dapat diminimalkan. Umumnya, kita dapat melakukannya dengan lancar, sehingga Google Cloud dapat menjalankan VM dengan lebih efisien di lebih sedikit server.
Komponen pengelolaan resource dinamis
Compute Engine menggunakan teknologi berikut untuk pengelolaan resource dinamis:
Server fisik yang lebih besar dan lebih efisien
Jumlah core dan kepadatan RAM terus meningkat sehingga server host kini memiliki resource yang jauh lebih banyak daripada VM individual mana pun. Google terus menjalankan benchmark terhadap hardware baru dan mencari platform yang hemat biaya serta berperforma optimal untuk berbagai workload dan layanan cloud, sehingga Anda dapat memanfaatkan teknologi terbaru saat tersedia.
Penempatan VM yang cerdas
Sistem pengelolaan cluster Google mengamati CPU, RAM, bandwidth memori, dan permintaan resource lainnya dari VM yang berjalan di server fisik. Informasi ini digunakan untuk memprediksi performa VM yang baru ditambahkan di server tersebut. Selanjutnya, sistem akan menelusuri ribuan server untuk menemukan lokasi terbaik untuk menambahkan VM. Pengamatan ini memastikan bahwa VM baru yang ditempatkan kompatibel dengan tetangganya dan tidak akan mengalami interferensi dari instance tersebut.
Migrasi langsung yang peka performa
Setelah VM ditempatkan di host, Compute Engine terus memantau performa dan waktu tunggunya. Jika permintaan resource di VM itu meningkat, Compute Engine dapat menggunakan migrasi langsung untuk mengalihkan beban kerja secara transparan ke host lain di pusat data. Kebijakan migrasi langsung ini dipandu oleh pendekatan prediktif yang memberi Compute Engine waktu untuk mengalihkan beban, sering kali sebelum VM mengalami waktu tunggu.
Hypervisor CPU scheduler
Hypervisor CPU scheduler secara dinamis memetakan CPU dan memori virtual ke CPU dan memori fisik di server host secara on-demand. Pengelolaan dinamis ini mendorong efisiensi biaya pada VM dengan memanfaatkan resource fisik secara lebih baik. Dengan penggunaan resource yang efisien, Compute Engine dapat menjalankan VM secara lebih efisien di lebih sedikit server, sehingga Google Cloud dapat meneruskan penghematan kepada pengguna.
Pengelolaan resource dinamis generasi pertama
E2 adalah seri VM pertama yang menawarkan pengelolaan resource dinamis menggunakan perangkat balon memori virtio.
Perangkat balon memori virtio dengan VM E2
Memory ballooning adalah mekanisme antarmuka antara host dan tamu untuk menyesuaikan ukuran memori cadangan untuk tamu secara dinamis. E2 menggunakan perangkat balon memori virtio untuk mengimplementasikan memory ballooning. Melalui perangkat balon memori virtio, host dapat secara eksplisit meminta tamu untuk memberikan sejumlah halaman memori bebas (disebut juga penggembungan balon memori), dan mengklaim kembali memori tersebut sehingga host dapat menggunakan memori bebas itu untuk VM lain. Demikian pula, perangkat balon memori virtio dapat mengembalikan halaman memori ke tamu dengan mengempiskan balon memori. VM E2 adalah satu-satunya kelompok mesin yang menggunakan perangkat balon memori.
Instance VM E2 Compute Engine yang didasarkan pada image publik memiliki perangkat balon memori virtio yang memantau penggunaan memori oleh sistem operasi tamu. Sistem operasi tamu mengomunikasikan memori yang tersedia ke sistem host. Host mengalokasikan ulang memori yang tidak terpakai ke proses lain secara on-demand, sehingga penggunaan memori menjadi lebih efektif. Compute Engine mengumpulkan dan menggunakan data ini untuk membuat rekomendasi penyesuaian ukuran yang lebih akurat.
Memverifikasi penginstalan driver
Untuk memeriksa apakah image Anda telah menginstal dan memuat driver perangkat balon memori virtio, jalankan perintah berikut.
Linux
Sebagian besar distribusi Linux menyertakan driver perangkat balon memori virtio. Untuk memastikan bahwa image Anda telah menginstal dan memuat driver ini, jalankan:
sudo modinfo virtio_balloon > /dev/null && echo Balloon driver is \ installed || echo Balloon driver is not installed; sudo lsmod | grep \ virtio_balloon > /dev/null && echo Balloon driver is loaded || echo \ Balloon driver is not loaded
Pada kernel Linux sebelum versi 5.2, sistem memori Linux terkadang keliru mencegah alokasi yang besar saat perangkat balon ada. Hal ini jarang terjadi, tetapi sebaiknya ubah setelan overcommit_memory
memori virtual menjadi 1
untuk mencegah terjadinya masalah ini. Perubahan ini sudah dilakukan secara default di semua image yang disediakan Google yang dipublikasikan sejak 9 Februari 2021.
Untuk memperbaiki setelan, gunakan perintah berikut untuk mengubah nilai dari 0
menjadi 1
:
sudo /sbin/sysctl -w vm.overcommit_memory=1
Untuk mempertahankan perubahan ini setelah sistem di-reboot, tambahkan kode berikut ke file /etc/sysctl.conf
Anda:
vm.overcommit_memory=1
Windows
Image Windows Compute Engine menyertakan perangkat balon virtio. Namun, image Windows kustom tidak demikian. Untuk memverifikasi apakah image Windows Anda telah menginstal driver ini, jalankan:
googet verify google-compute-engine-driver-balloon
Menonaktifkan perangkat balon memori virtio
Dengan menggunakan perangkat balon memori virtio, Compute Engine dapat memanfaatkan resource memori secara lebih efektif, sehingga Google Cloud dapat menawarkan VM E2 dengan harga lebih murah. Anda dapat memilih untuk tidak menggunakan perangkat balon memori virtio dengan menonaktifkan driver perangkat tersebut. Setelah menonaktifkan perangkat balon memori virtio, Anda akan terus menerima rekomendasi penyesuaian ukuran; namun, rekomendasi itu mungkin tidak akurat.
Linux
Untuk menonaktifkan perangkat ini di Linux, jalankan perintah berikut:
sudo rmmod virtio_balloon
Anda dapat menambahkan perintah ini ke skrip startup VM untuk otomatis menonaktifkan perangkat setelah VM di-booting.
Windows
Untuk menonaktifkan perangkat ini di Windows, jalankan perintah berikut:
googet -noconfirm remove google-compute-engine-driver-balloon
Anda dapat memasukkan perintah ini ke skrip startup VM untuk otomatis menonaktifkan perangkat setelah VM di-booting.
Langkah berikutnya
- Baca blog tentang Pengelolaan resource dinamis.
- Tinjau informasi seri mesin N4.
- Tinjau informasi seri mesin E2.
- Buat VM.