CPU overcommit pada sole-tenant VM


Overcommit CPU di sole-tenant node memungkinkan Anda menjadwalkan instance yang dapat saling berbagi siklus CPU cadangannya. Hal ini memungkinkan Anda menyediakan resource sole-tenant node secara berlebihan dan menjadwalkan lebih banyak CPU VM di satu sole-tenant node daripada yang biasanya tersedia. Overcommit CPU sangat berguna untuk beban kerja yang kurang dimanfaatkan, tetapi mungkin mengalami burst yang relatif tidak berkorelasi.

Overcommit CPU dapat membantu Anda mengurangi biaya per VM dengan menyebarkan biaya sole-tenant node di lebih banyak VM. Hal ini juga dapat mengurangi biaya lisensi per VM saat menggunakan lisensi per soket atau per inti.

VM dengan CPU yang terlalu di-commit dapat memanfaatkan resource CPU yang tidak digunakan dengan cara berikut:

  • Jika sole-tenant node tidak penuh, VM yang dikomputasi berlebihan dapat menggunakan inti yang tidak teralokasi.

  • Jika VM lain pada sole-tenant node tidak menggunakan semua resource CPU-nya, misalnya karena CPU tidak ada aktivitas, VM yang melakukan kompromi berlebihan dapat menggunakan resource CPU tersebut.

Level overcommit

Anda dapat menentukan nilai untuk jumlah minimum CPU yang dialokasikan ke VM saat membuat VM atau setelah VM dihentikan. Level overcommit menunjukkan jumlah minimum thread CPU dasar yang dijamin akan tersedia untuk VM. Jika VM memiliki lebih banyak vCPU daripada thread dasar yang tersedia, vCPU VM akan berbagi resource komputasi dasar dan berjalan dengan performa yang menurun.

Anda dapat menetapkan nilai ini untuk setiap VM, yang memungkinkan Anda menyediakan VM dengan rasio overcommit CPU yang berbeda-beda pada satu sole-tenant node. Nilai yang lebih rendah akan mengurangi persyaratan kapasitas dan dapat mengorbankan performa jika terjadi burst yang berkorelasi. Menentukan nilai optimal untuk jumlah minimum CPU memerlukan pemahaman tentang penggunaan beban kerja dan modifikasi nilai yang iteratif.

Saat menetapkan nilai ini, perhatikan hal berikut:

  • Jika Anda tidak menetapkan nilai untuk jumlah minimum CPU, atau menetapkan nilai untuk jumlah minimum CPU yang sama dengan jumlah CPU pada jenis mesin VM, rasio overcommit yang diizinkan VM adalah 1,0. Dengan rasio overcommit 1.0, semua CPU hanya dapat diakses oleh VM ini, dan tidak ada resource CPU yang tersedia untuk di-overcommit ke VM lain.

  • Jumlah minimum CPU tidak boleh lebih besar dari jumlah CPU yang ditentukan oleh jenis mesin VM.

  • Jumlah nilai jumlah minimum CPU untuk semua VM di satu node tenant tidak boleh melebihi kapasitas CPU dari jenis sole-tenant node tersebut, yang pada jenis node n1-node-96-624 adalah 96.

Nilai untuk jumlah CPU yang ditentukan oleh jenis mesin VM adalah nilai statis, dan menunjukkan jumlah CPU yang dapat diledakkan VM dari jumlah minimum jika CPU tersebut tersedia. Jika Anda memerlukan jumlah CPU yang berbeda dari yang disediakan oleh jenis mesin tetap, Anda dapat menggunakan jenis mesin kustom.

Pertimbangan

Sebelum mengonfigurasi tingkat overcommit CPU untuk VM, pertimbangkan kritisnya beban kerja Anda. Beban kerja yang kurang penting, seperti beban kerja pengembangan dan pengujian, berpotensi menoleransi level overcommit yang lebih tinggi. Beban kerja yang lebih penting, seperti sistem pembayaran produksi, mungkin tidak menoleransi overhead commit sebanyak atau sama sekali.

Pertimbangkan juga pemanfaatan beban kerja Anda. Workload dengan penggunaan CPU yang tinggi bukanlah kandidat yang tepat untuk overcommit CPU karena beban kerja tersebut tidak akan memiliki siklus pemakaian cadangan untuk digunakan oleh VM lain yang di-commit lebih lanjut. Selain itu, beban kerja dengan pemakaian CPU rata-rata yang rendah, tetapi puncak pemakaian yang rendah, dapat diuntungkan dengan ukuran jenis mesin yang berbeda.

Penggunaan overcommit CPU menguntungkan workload burst yang tidak berkorelasi dengan pemakaian puncak yang tinggi dan pemakaian rata-rata yang rendah karena beban kerja ini cenderung memiliki resource CPU yang tersedia untuk digunakan bersama di seluruh VM ketika beberapa VM perlu meningkatkan penggunaannya. Jika semua VM pada host burst pada satu waktu, host tidak akan memiliki resource yang cukup untuk VM Anda.

Batasan

Batasan beban kerja

Overcommit CPU paling cocok untuk beban kerja tanpa persyaratan performa yang ketat—misalnya, beban kerja pengembangan dan pengujian, serta infrastruktur desktop virtual.

Level overcommit CPU yang tinggi mungkin tidak sesuai untuk beban kerja yang sensitif terhadap performa.

Untuk beban kerja dengan penggunaan rata-rata dan puncak yang terus-menerus rendah, Google merekomendasikan penyesuaian ukuran. Artinya, daripada melakukan overcommit CPU, sebaiknya ubah ukuran instance VM agar sesuai dengan persyaratan resource dari beban kerja tersebut.

Jika instance Anda terlalu banyak di-overcommit, pindahkan ke sole-tenant node lainnya.

Batasan jenis mesin

Anda hanya dapat melakukan overcommit CPU pada hal-hal berikut:

Batasan level overcommit

Anda hanya dapat mengonfigurasi CPU minimum di setiap sole-tenant node menjadi setengah dari CPU VM, yang memungkinkan rasio overcommit sole-tenant node maksimum sebesar 2,0.

Batasan penjadwalan VM

Grup node tenant tunggal berdasarkan template node tenant tunggal yang tidak dikonfigurasi untuk overcommit CPU tidak mengizinkan penyediaan VM dengan overcommit CPU yang diaktifkan. Artinya, Anda tidak dapat menjadwalkan VM dengan jumlah minimum CPU yang ditentukan pada grup sole-tenant node yang tidak dikonfigurasi untuk overcommit CPU.

Kuota

Kuota CPU didasarkan pada jumlah vCPU dari jenis sole-tenant node, bukan potensi maksimum vCPU yang tersedia untuk overcommit.

Biaya

sole-tenant node dengan overcommit CPU yang dipilih pada template node-nya akan dikenai biaya tambahan sebesar 25%. Biaya ini merupakan tambahan untuk 10% premium untuk menjalankan VM di sole-tenant node. Premi overcommit CPU bersifat tetap, terlepas dari level overcommit CPU dan jumlah VM yang dijadwalkan di sole-tenant node.

Sole-tenant node menawarkan diskon abonemen. Diskon untuk penggunaan berkelanjutan tersedia untuk premium tenancy tunggal dan premium overcommit CPU.

Untuk memperkirakan biaya menjalankan VM di sole-tenant node, lihat Kalkulator Harga.

Mengonfigurasi sole-tenant VM untuk overcommit

Untuk mengonfigurasi sole-tenant VM agar resource CPU tersedia untuk overcommit, lakukan langkah berikut:

  1. Buat template sole-tenant node yang mengaktifkan overcommit CPU. Anda harus mengaktifkan overcommit CPU saat membuat template node. Anda tidak dapat mengaktifkan overcommit CPU setelah membuat template node.

  2. Buat grup sole-tenant node berdasarkan template sole-tenant node yang mengaktifkan overcommit CPU.

  3. Buat VM dan lakukan hal berikut ini:

    1. Pilih jenis mesin untuk VM. Jumlah CPU pada jenis mesin menunjukkan jumlah maksimum CPU yang dapat diledakkan oleh VM dari jumlah minimum CPU jika jumlah minimum CPU kurang dari jumlah CPU yang ditentukan berdasarkan jenis mesin.

      Anda dapat memilih jenis mesin yang berbeda untuk setiap VM pada node tenant tunggal, asalkan Anda tidak melebihi kapasitas CPU dan memori di node tenant tunggal.

    2. Tentukan jumlah minimum CPU yang akan dialokasikan ke satu VM tersebut, atau gunakan grup instance terkelola untuk membuat beberapa VM yang memiliki tingkat overcommit CPU yang sama.

Sebelum memulai

  • Buat template sole-tenant node dan tentukan --cpu-overcommit-type=enabled.
  • Buat grup sole-tenant node berdasarkan template sole-tenant node dengan overcommit CPU yang diaktifkan.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Menyetel level overcommit CPU

Prosedur berikut menunjukkan cara membuat sole-tenant VM dengan resource CPU yang tersedia untuk overcommit. Jika perlu mengubah level overcommit CPU pada VM yang sedang berjalan, Anda harus menghentikan VM terlebih dahulu.

Konsol

Di konsol Google Cloud, buat sole-tenant VM pada grup sole-tenant node yang dibuat dari template sole-tenant node yang telah mengaktifkan overcommit CPU:

  1. Buka halaman Sole-tenant nodes.

    Buka Sole-tenant nodes

  2. Klik Node groups.

  3. Klik grup sole-tenant node tempat VM akan dibuat.

  4. Klik Create instance.

  5. Tentukan Name, Region, dan Zone untuk VM.

  6. Di bagian Machine configuration, pilih Machine type tetap atau kustom dengan minimal 4 vCPU.

  7. Pada bagian CPU overcommit, pilih Enable CPU overcommit.

  8. Di bagian Minimum vCPUs Allocations, sesuaikan penggeser atau masukkan jumlah vCPU secara manual untuk menentukan tingkat overcommit bagi CPU pada VM ini.

  9. Klik Create untuk membuat instance VM yang memiliki resource CPU yang tersedia untuk overcommit.

gcloud

Contoh berikut menunjukkan cara menggunakan perintah gcloud compute instances create untuk membuat sole-tenant VM pada jenis mesin tetap dengan resource CPU yang tersedia untuk overcommit.

gcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --min-node-cpu=MIN_VCPUS \
    --node-group=GROUP_NAME

Ganti kode berikut:

  • VM_NAME: nama VM yang akan di-overcommit CPU.

  • MACHINE_TYPE: jenis mesin untuk menyediakan sole-tenant VM. Jumlah CPU yang ditentukan oleh jenis mesin adalah jumlah maksimum CPU yang dapat memicu VM dari MIN_VCPUS.

  • MIN_VCPUS: jumlah minimum vCPU yang dijamin akan tersedia untuk VM ini.

  • GROUP_NAME: nama grup sole-tenant node tempat VM akan disediakan.

Menetapkan level overcommit pada jenis mesin kustom

Untuk membuat sole-tenant VM dengan resource CPU yang tersedia untuk overcommit pada jenis mesin kustom, hapus tanda --machine-type, dan sebagai gantinya, gunakan tanda --custom-cpu dan --custom-memory untuk menentukan jumlah CPU dan jumlah memori, dalam gigabita, untuk mesin khusus itu.

REST

Contoh berikut menunjukkan cara menggunakan perintah instances.insert untuk membuat sole-tenant VM pada jenis mesin tetap dengan resource CPU yang tersedia untuk overcommit.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "scheduling": {
    "minNodeCpus": MIN_VCPUS,
    "nodeAffinities": [
      {
        "key": "compute.googleapis.com/node-group-name",
        "operator": "IN",
        "values": [
          "GROUP_NAME"
        ]
      }
    ]
  },
  ...
}

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.

  • ZONE: zona untuk permintaan ini.

  • MACHINE_TYPE_ZONE: zona yang menghosting jenis mesin.

  • MACHINE_TYPE: jenis mesin untuk menyediakan sole-tenant VM. Jumlah CPU yang ditentukan oleh jenis mesin adalah jumlah maksimum CPU yang dapat digunakan VM dari MIN_VCPUS.

  • VM_NAME: nama sole-tenant VM yang akan digunakan untuk melakukan overcommit CPU.

  • MIN_VCPUS: jumlah minimum vCPU yang dijamin akan tersedia untuk VM ini.

  • GROUP_NAME: nama grup sole-tenant node tempat VM akan disediakan.

Menetapkan level overcommit pada jenis mesin kustom

Untuk membuat sole-tenant VM dengan resource CPU yang tersedia untuk overcommit pada jenis mesin kustom, ganti nilai untuk kolom machineType dengan zones/zone/machineTypes/custom-CPUS-MEMORY, yang menggantikan CPUS dengan jumlah CPU dan MEMORY dengan jumlah memori, dalam megabyte, untuk jenis mesin khusus.

Mengupdate level overcommit CPU

Prosedur berikut menunjukkan cara mengupdate tingkat overcommit CPU dari sole-tenant VM.

gcloud

  1. Untuk mengubah tingkat overcommit CPU pada VM yang sedang berjalan, Anda harus menghentikan VM terlebih dahulu. Untuk menghentikan VM, gunakan perintah gcloud compute instances stop seperti berikut:

    gcloud compute instances stop VM_NAME
    

    Ganti VM_NAME dengan nama instance yang ingin Anda hentikan.

  2. Untuk mengupdate tingkat overcommit CPU dari sole-tenant VM, gunakan perintah gcloud compute instances set-scheduling sebagai berikut:

    gcloud compute instances set-scheduling VM_NAME \
      --min-node-cpu=MIN_VCPUS
    

    Ganti kode berikut:

    • VM_NAME: nama sole-tenant VM untuk mengubah tingkat overcommit CPU.

    • MIN_VCPUS: jumlah minimum vCPU yang dijamin akan tersedia untuk VM ini.

REST

  1. Untuk mengubah tingkat overcommit CPU pada VM yang sedang berjalan, Anda harus menghentikan VM terlebih dahulu. Untuk menghentikan VM, buat permintaan POST menggunakan metode instances.stop sebagai berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda.

    • ZONE: zona untuk permintaan ini.

    • VM_NAME: nama sole-tenant VM untuk mengubah tingkat overcommit CPU.

  2. Untuk mengupdate tingkat overcommit CPU dari sole-tenant VM, gunakan metode instances.setScheduling seperti berikut:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
    {
    "minNodeCpus":MIN_VCPUS
    }
    

    Ganti kode berikut:

    • PROJECT_ID: ID project Anda.

    • ZONE: zona untuk permintaan ini.

    • VM_NAME: nama sole-tenant VM untuk mengubah tingkat overcommit CPU.

    • MIN_VCPUS: jumlah minimum vCPU yang dijamin akan tersedia untuk VM ini.

Menonaktifkan overcommitment CPU untuk sole-tenant VM

Prosedur berikut menunjukkan cara menonaktifkan overcommit CPU dari sole-tenant VM.

gcloud

Contoh berikut menunjukkan cara menggunakan perintah gcloud compute instances set-scheduling untuk menonaktifkan overcommit CPU dari sole-tenant VM.

gcloud compute instances set-scheduling VM_NAME \
  --clear-min-node-cpu

Ganti kode berikut:

  • VM_NAME: nama sole-tenant VM untuk menonaktifkan overcommit CPU.

REST

Contoh berikut menunjukkan cara menggunakan perintah instances.setScheduling untuk menonaktifkan overcommit CPU dari sole-tenant VM.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling
{
  "minNodeCpus":null
}

Ganti kode berikut:

  • PROJECT_ID: ID project Anda.

  • ZONE: zona untuk permintaan ini.

  • VM_NAME: nama sole-tenant VM untuk menonaktifkan overcommit CPU.

Melihat penggunaan CPU

Untuk memeriksa penggunaan CPU VM tenant tunggal dalam grup node tenant tunggal, lakukan hal berikut:

  1. Di konsol Google Cloud, buka halaman Sole-tenant nodes.

    Buka Sole-tenant nodes

  2. Klik Node groups.

  3. Klik grup sole-tenant node yang berisi sole-tenant node yang memiliki VM dengan CPU yang di-commit terlalu tinggi.

  4. Klik sole-tenant node yang memiliki VM dengan CPU yang overcommit.

  5. Di bagian nama sole-tenant node, lihat Penggunaan CPU, jenis overcommit CPU, dan Penggunaan CPU min.

    • Penggunaan CPU menunjukkan total jumlah maksimum CPU untuk semua VM di sole-tenant node ini dibagi dengan jumlah CPU yang ditentukan oleh jenis sole-tenant node.

      Jumlah CPU pada node yang tersedia untuk overcommit adalah pembilang dikurangi penyebut, dan tingkat overcommit adalah hasil bagi pembilang dan penyebut.

    • Min CPU usage menunjukkan jumlah minimum CPU yang dialokasikan untuk semua VM di satu sole-tenant node dibagi dengan jumlah CPU yang ditentukan oleh jenis node.

Mengoptimalkan level overcommit CPU

Untuk membantu mengoptimalkan penyesuaian level overcommit CPU, Compute Engine menyediakan metrik Waktu Tunggu Penjadwal. Metrik Waktu Tunggu Penjadwal menunjukkan waktu tunggu gabungan untuk semua vCPU pada VM dan membantu Anda menentukan dampak overcommit CPU terhadap performa VM.

Sensitivitas beban kerja bervariasi, tetapi aturan umumnya adalah menggunakan 20 milidetik waktu tunggu penjadwal yang diperoleh per detik (20 milidetik/dtk) sebagai waktu tunggu maksimum untuk setiap vCPU. Misalnya, jika VM ditetapkan ke 8 vCPU, nilai minimum aturannya adalah 160 md/d, yang menghasilkan Waktu Tunggu Penjadwal rata-rata yang dapat diterima sebesar 20 md/d per vCPU. Persyaratan performa beban kerja Anda pada akhirnya akan menentukan batas yang dapat diterima.

  1. Di konsol Google Cloud, buka halaman Monitoring.

    Buka Monitoring

  2. Klik Metrics Explorer.

  3. Di kolom Resource type, masukkan VM Instance.

  4. Di kolom Metric, masukkan Scheduler Wait Time.

  5. Secara opsional, siapkan pemberitahuan untuk memicu pemberitahuan untuk nilai minimum waktu tunggu VM dengan mengklik Alerting.

Langkah selanjutnya