Pengelolaan resource dinamis generasi berikutnya


VM N4, didukung oleh prosesor Intel Xeon generasi ke-5 dan Titanium, menggunakan pengelolaan resource dinamis generasi berikutnya untuk mendorong efisiensi biaya dengan memanfaatkan lebih baik resource fisik yang tersedia di mesin host, serta menggunakan penjadwal CPU yang dibuat khusus dan migrasi langsung berbasis performa untuk menyeimbangkan kebutuhan performa workload dengan resource yang tersedia. Ini adalah teknologi yang sama yang digunakan layanan Google Penelusuran, Google Ads, Google Maps, dan YouTube untuk menjalankan workload yang sensitif terhadap latensi 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 berbasis 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 terisi saat halaman fisik tamu pertama kali diakses. Pemetaan ini terus ditetapkan hingga VM menunjukkan bahwa halaman fisik tamu tidak lagi diperlukan.

Dengan pengelolaan resource dinamis, Compute Engine dapat menggunakan CPU fisik yang tersedia secara lebih baik dengan menjadwalkan VM ke server berdasarkan permintaan resource, dan menjadwalkan thread vCPU ke CPU fisik sehingga waktu tunggu diminimalkan. Kami biasanya dapat melakukannya dengan lancar, sehingga Google Cloud dapat menjalankan VM dengan lebih efisien pada server yang lebih sedikit.

Komponen pengelolaan resource dinamis

Compute Engine menggunakan teknologi berikut untuk pengelolaan resource dinamis:

Server fisik yang lebih besar dan lebih efisien

Jumlah inti dan kepadatan RAM terus meningkat sedemikian rupa sehingga sekarang server host memiliki resource yang jauh lebih banyak daripada VM individual mana pun. Google terus melakukan benchmark hardware baru dan mencari platform yang hemat biaya serta berperforma baik untuk berbagai workload dan layanan cloud, sehingga Anda dapat memanfaatkan teknologi terbaru jika sudah 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 VM meningkat, Compute Engine dapat menggunakan migrasi langsung untuk mengalihkan workload secara transparan ke host lain di pusat data. Kebijakan migrasi langsung dipandu oleh pendekatan prediktif yang memberi Compute Engine waktu untuk mengalihkan beban, sering kali sebelum waktu tunggu dialami oleh VM.

Hypervisor CPU scheduler

Penjadwal CPU hypervisor secara dinamis memetakan CPU dan memori virtual ke CPU fisik dan memori server host sesuai permintaan. Pengelolaan dinamis ini mendorong efisiensi biaya pada VM dengan memanfaatkan resource fisik secara lebih baik. Penggunaan resource yang efisien berarti Compute Engine dapat menjalankan VM secara lebih efisien pada 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 balon memori. 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 selanjutnya