Halaman ini menunjukkan cara mengonfigurasi multi-threading simultan di cluster Google Kubernetes Engine (GKE).
Ringkasan
Node GKE adalah instance virtual machine (VM) Compute Engine yang dibuat GKE untuk Anda. Pada VM ini, multi-threading simultan (SMT) diaktifkan secara default. SMT adalah kemampuan untuk menjalankan beberapa
thread independen pada satu inti CPU fisik. Dengan SMT diaktifkan, satu inti fisik dapat menjalankan dua CPU virtual (vCPU) sebagai thread independen yang terpisah. Misalnya, node GKE n2-standard-32
ternyata menjalankan 32 vCPU pada 16 inti CPU fisik.
Dengan diperkenalkannya konfigurasi SMT pada node GKE, Anda kini dapat mengonfigurasi SMT sehingga jumlah vCPU yang efektif sama dengan jumlah inti fisik, yang berarti bahwa node GKE Anda dapat menggunakan seluruh inti fisik per vCPU.
Manfaat
Mengonfigurasi SMT di GKE memberikan manfaat berikut.
Performa meningkat
Beberapa workload Komputasi Berperforma Tinggi (HPC) mungkin mengalami peningkatan performa dengan menonaktifkan SMT. Biasanya, untuk banyak tugas komputasi umum atau tugas yang memerlukan banyak I/O, SMT dapat meningkatkan throughput aplikasi secara signifikan. Sebaliknya, untuk tugas terikat komputasi dengan kedua core virtual terikat komputasi, SMT dapat menghambat performa aplikasi secara keseluruhan dan menambahkan varian nondeterministik ke tugas. Oleh karena itu, dengan SMT dinonaktifkan, beberapa aplikasi HPC mungkin mendapatkan performa yang lebih baik dan lebih dapat diprediksi.
Mengurangi biaya lisensi
Beberapa perjanjian lisensi software memiliki model penagihan yang terikat dengan jumlah vCPU yang digunakan. Menonaktifkan SMT akan mengurangi jumlah vCPU untuk setiap inti hingga setengahnya, yang dapat mengurangi biaya pemberian lisensi Anda. Untuk informasi selengkapnya, lihat perjanjian lisensi Anda.
Lihat bagian harga untuk memahami cara penagihan Google Cloud saat dikonfigurasi SMT.
Batasan
- Jenis mesin: SMT tidak dapat dikonfigurasi pada jenis mesin yang memiliki kurang dari 2 vCPU (misalnya
n1-standard-1
) atau pada jenis mesin Tau T2D. - Penyediaan otomatis node: Kemampuan konfigurasi SMT tidak didukung untuk cluster yang mengaktifkan penyediaan otomatis node.
- Autoscaler cluster: Penskalaan dari node nol dengan konfigurasi SMT hanya didukung di autoscaler cluster untuk cluster yang menjalankan GKE versi 1.21 atau yang lebih baru.
- GKE Sandbox: Anda dapat mengonfigurasi setelan SMT di node GKE Sandbox
di cluster GKE Standar yang menjalankan versi
1.24.2-gke.300 dan yang lebih baru menggunakan flag
--threads-per-core
, dan di versi sebelumnya menggunakan DaemonSet yang berdiri sendiri. Untuk mendapatkan petunjuk, lihat GKE Sandbox. Karena multithreading dinonaktifkan secara default di GKE Sandbox sebelum versi 1.24.2-gke.300, mengonfigurasi SMT menggunakanthreads-per-core
tidak didukung. Jika Anda menggunakan GKE Sandbox dan ingin mengaktifkan SMT, lihat SMT mungkin dinonaktifkan. - Mode cluster: Kemampuan konfigurasi SMT tidak didukung di cluster Autopilot GKE.
Harga
SMT untuk GKE ditagih berdasarkan harga Compute Engine yang mendasarinya untuk SMT. Anda dikenai biaya untuk jumlah vCPU yang ditentukan oleh jenis mesin VM, bukan jumlah thread yang berjalan pada setiap inti. Meskipun SMT dikonfigurasi, Anda akan terus ditagih sesuai jumlah default vCPU yang ditentukan oleh jenis mesin VM. Untuk mengetahui informasi lebih lanjut mengenai cara penagihan Anda untuk VM, lihat Harga instance VM.
Misalnya, node GKE yang dibuat menggunakan jenis mesin n2-standard-8
berjalan dengan SMT yang diaktifkan secara default, dan dapat menjalankan hingga 8 vCPU, yaitu 2 vCPU untuk masing-masing dari empat inti CPU fisik. Jika Anda mengonfigurasi SMT agar hanya menggunakan satu thread per inti (secara efektif 4 vCPU), Anda tetap dikenai biaya untuk 8 vCPU.
Mengonfigurasi SMT
Anda dapat mengonfigurasi SMT pada cluster atau node pool baru dengan menentukan jumlah thread per inti.
Tabel berikut menunjukkan kemungkinan nilai untuk thread per inti dan perilaku SMT yang sesuai untuk node:
Thread per core | Perilaku SMT |
---|---|
null (tidak ditentukan) |
Default VM Compute Engine |
0 |
Tidak valid |
1 |
SMT nonaktif |
2 |
SMT aktif |
> 2 |
Tidak valid |
Mengonfigurasi SMT pada cluster baru
Anda dapat mengonfigurasi SMT pada cluster baru menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Untuk mengonfigurasi SMT, jalankan perintah berikut:
gcloud container clusters create CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--threads-per-core=THREADS_PER_CORE
Ganti kode berikut:
CLUSTER_NAME
: nama untuk cluster baru.MACHINE_TYPE
: jenis mesin yang akan digunakan untuk node GKE Anda. Jenis mesin ini harus berupa mesin dengan 2 vCPU atau lebih.THREADS_PER_CORE
: jumlah thread per inti fisik. Tabel sebelumnya menampilkan nilai yang dapat Anda tentukan.
Untuk mengetahui daftar lengkap opsi, lihat dokumentasi gcloud container clusters create
.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik add_box Create.
Pada dialog Create cluster, di samping GKE Standard, klik Configure.
Di menu navigasi, di bagian node pool, klik nama node pool, lalu klik Node.
Di bagian Machine Configuration, pilih Machine type yang didukung, seperti e2-standard-2.
Klik
CPU Platform and GPU.Dari menu drop-down vCPU ke rasio inti, pilih salah satu opsi berikut:
- 1 vCPU per inti: nonaktifkan SMT.
- 2 vCPU per inti: tetap aktifkan SMT.
Konfigurasikan cluster dan node pool sesuai kebutuhan, lalu klik Create.
Mengonfigurasi SMT pada node pool baru
Anda dapat mengonfigurasi SMT pada node pool baru menggunakan gcloud CLI atau Konsol Google Cloud.
gcloud
Untuk mengonfigurasi SMT, jalankan perintah berikut:
gcloud container node-pools create POOL_NAME \
--cluster=CLUSTER_NAME \
--machine-type=MACHINE_TYPE \
--threads-per-core=THREADS_PER_CORE
Ganti kode berikut:
POOL_NAME
: nama untuk node pool baru.CLUSTER_NAME
: nama cluster yang ada.MACHINE_TYPE
: jenis mesin yang akan digunakan untuk node GKE Anda. Jenis mesin ini harus berupa mesin dengan 2 vCPU atau lebih.THREADS_PER_CORE
: jumlah thread per inti fisik. Tabel sebelumnya menampilkan nilai yang dapat Anda tentukan.
Untuk mengetahui daftar lengkap opsi, lihat dokumentasi gcloud container clusters create
.
Konsol
Buka halaman Google Kubernetes Engine di konsol Google Cloud.
Klik nama cluster yang ingin diubah.
Klik
Add node pool.Di menu navigasi, klik Node.
Di bagian Machine Configuration, pilih Machine family dan Machine type yang mendukung SMT, seperti n2-standard -2.
Klik
CPU Platform and GPU.Dari menu drop-down vCPU ke rasio inti, pilih salah satu opsi berikut:
- 1 vCPU per inti: nonaktifkan SMT.
- 2 vCPU per inti: tetap aktifkan SMT.
Konfigurasikan node pool sesuai kebutuhan, lalu klik Create.
Memverifikasi konfigurasi SMT
Linux
Untuk memverifikasi konfigurasi SMT pada node Linux, lakukan langkah-langkah berikut:
SSH ke node:
gcloud compute ssh NODE_NAME
Ganti
NODE_NAME
dengan nama node Anda.Periksa jumlah vCPU:
cat /proc/cpuinfo | grep processor | wc -l
Outputnya mirip dengan hal berikut ini:
16
Jika Anda menetapkan jumlah thread per inti ke
1
, output akan menampilkan setengah dari jumlah default vCPU VM Compute Engine. Misalnya, output untukn2-standard-32
dengan SMT nonaktif harus16
, bukan nilai default32
.
Windows
Untuk memverifikasi konfigurasi SMT pada node Windows, lakukan langkah-langkah berikut:
Tetapkan nama pengguna dan sandi untuk RDP ke node:
gcloud compute reset-windows-password NODE_NAME
Ganti
NODE_NAME
dengan nama node Anda.Buat koneksi ke
EXTERNAL_IP:3389
untuk VM.Jalankan perintah PowerShell berikut:
Get-WmiObject -Class Win32_Processor -ComputerName. | Select-Object -Property [a-z]* | Select NumberOfCores,NumberOfLogicalProcessors
Jika Anda menetapkan jumlah thread per inti ke
1
, nilaiNumberOfCores
harus sama dengan nilaiNumberOfLogicalProcessors
, seperti dalam contoh output berikut:Output (example n1-standard-2 with SMT off) NumberOfCores NumberOfLogicalProcessors ------------- ------------------------- 1 1
Langkah berikutnya
- Pelajari jenis mesin yang tersedia.
- Pelajari cara menentukan platform CPU minimum untuk node GKE Anda.
- Pelajari cara menggunakan sole-tenant node Compute Engine di GKE.