CPU Steal Time pada VPS: Kenapa CPU Harus Menunggu?

Pernah mengalami VPS terasa lambat, padahal penggunaan CPU terlihat masih normal? Jangan langsung menganggap aplikasi atau service di dalam VPS yang bermasalah. Salah satu metrik yang sering terlewat saat melakukan pengecekan adalah CPU Steal Time pada VPS (%st).

Namun, CPU Steal Time menunjukkan waktu ketika vCPU VPS sudah siap menjalankan proses, tetapi harus menunggu waktu eksekusi dari CPU fisik karena CPU tersebut sedang digunakan oleh VPS atau VM lain pada server yang sama. Selain itu, meskipun penggunaan CPU di dalam VPS terlihat rendah, bukan berarti VPS selalu mendapatkan seluruh waktu CPU yang dibutuhkannya.

Apa Itu CPU Steal Time pada VPS?

CPU Steal Time adalah persentase waktu ketika vCPU milik VPS atau VM sebenarnya siap bekerja, tetapi harus menunggu karena CPU fisik pada host sedang menjalankan VPS host lain atau pekerjaan lainnya. Sederhananya, VPS anda punya “jatah” untuk menggunakan CPU fisik. Namun, karena satu CPU fisik bisa digunakan bersama oleh beberapa VM, terkadang VPS harus menunggu giliran. Waktu menunggu inilah yang tercermin sebagai CPU Steal Time (%st) di Linux.

Kalau dianalogikan, bayangkan anda sedang berada di sebuah minimarket yang hanya memiliki satu kasir, sementara ada beberapa pelanggan lain yang juga ingin dilayani.

  • 0% Steal Time: Anda datang ke kasir dan langsung dilayani. Tidak perlu menunggu.
  • 10% Steal Time: Sesekali kasir harus melayani pelanggan lain, sehingga anda hanya perlu menunggu sebentar.
  • 50% Steal Time: Waktu kasir cukup banyak terbagi untuk melayani pelanggan lain, sehingga transaksi anda menjadi jauh lebih lama.
  • 100% Steal Time: Kasir sepenuhnya sibuk melayani pelanggan lain, sehingga anda tidak mendapatkan giliran untuk dilayani. Transaksi anda pun praktis berhenti.

Dalam analogi ini kasir adalah CPU fisik, sedangkan anda adalah vCPU milik VPS atau VM . Sementara itu, hypervisor bertugas mengatur antrean penggunaan CPU fisik tersebut, termasuk menentukan VM mana yang mendapatkan waktu CPU dan kapan CPU tersebut digunakan. Jadi, ketika nilai %st tinggi, bukan berarti CPU di dalam VPS sedang bekerja terlalu keras. Justru sebaliknya, vCPU sedang menunggu giliran untuk mendapatkan waktu eksekusi dari CPU fisik. Semakin tinggi nilai Steal Time, semakin banyak waktu yang dihabiskan VPS untuk menunggu CPU fisik. Dalam kondisi tertentu, hal ini dapat membuat aplikasi atau service di dalam VPS terasa lambat meskipun penggunaan CPU di dalam VPS sendiri terlihat tidak terlalu tinggi.

Bagaimana CPU Steal Time Terjadi pada VPS?

CPU Steal Time bukanlah bug atau kesalahan pada sistem operasi tamu (guest OS), melainkan salah satu kondisi yang dapat terjadi akibat penggunaan sumber daya CPU secara bersama dalam lingkungan virtualisasi (multi-tenancy).

Dalam lingkungan virtualisasi, satu server fisik dapat menjalankan beberapa VPS secara bersamaan. Setiap VPS memiliki Guest OS sendiri, seperti Ubuntu, Debian, atau Windows, serta memiliki sejumlah vCPU (virtual CPU) sesuai dengan konfigurasi yang diberikan oleh penyedia layanan. Meskipun setiap VPS memiliki vCPU masing-masing, vCPU tersebut tetap membutuhkan waktu eksekusi pada CPU fisik yang tersedia pada server. Sebagai ilustrasi, berikut ini adalah gambaran server fisik yang menjalankan beberapa VPS, di mana salah satu VPS mengalami CPU Steal Time:

cpu steal time

VPS tersebut berjalan secara terisolasi, sehingga Guest OS pada satu VPS tidak dapat secara langsung mengakses Guest OS VPS lainnya. Namun, VPS-VPS tersebut dapat berbagi resource fisik yang sama, termasuk CPU, sesuai dengan konfigurasi dan mekanisme pengaturan resource pada hypervisor. Selain itu, ketika beberapa VPS membutuhkan CPU pada waktu yang bersamaan, hypervisor akan mengatur penggunaan CPU fisik melalui CPU scheduler. Scheduler menentukan vCPU mana yang mendapatkan waktu eksekusi pada CPU fisik dan kapan waktu tersebut diberikan. Proses terjadinya CPU Steal Time pada gambar dijealaskan sebagai berikut :

  1. VPS anda dan VPS tetangga sama-sama memiliki vCPU yang membutuhkan waktu eksekusi pada CPU fisik.
  2. Permintaan penggunaan CPU tersebut kemudian diatur oleh CPU scheduler pada hypervisor, yang menentukan vCPU mana yang mendapatkan giliran menggunakan CPU fisik.
  3. Ketika CPU fisik sedang digunakan oleh VPS lain, karena VPS tetangga sedang memiliki beban kerja yang tinggi, vCPU VPS anda harus menunggu giliran untuk mendapatkan waktu eksekusi.
  4. Waktu tunggu tersebut kemudian tercatat sebagai CPU Steal Time (%st) pada VPS anda.
  5. Ketika CPU fisik sudah tersedia, Akibatnya vCPU VPS anda mendapatkan giliran untuk menggunakan CPU, sehingga instruksi dan proses di dalam VPS dapat berjalan kembali secara normal.
  6. Semakin lama vCPU harus menunggu, semakin tinggi nilai CPU Steal Time (%st) yang dapat terlihat pada VPS anda.

Cara Memeriksa CPU Steal Time

CPU Steal Time dapat dipantau dari dalam VPS, tetapi cara melihatnya berbeda antara Linux dan Windows.

  • Linux

Pada VPS Linux, nilai CPU Steal Time dapat dilihat langsung melalui beberapa perintah seperti top, vmstat, atau sar.

Menggunakan top:

%Cpu(s): 12.0 us,  2.5 sy,  0.0 ni, 50.5 id,  0.0 wa,  0.0 hi,  0.0 si, 35.0 st
  • us: Waktu untuk proses pengguna (user-space).
  • sy: Waktu untuk kernel sistem.
  • id: Waktu CPU menganggur (idle).
  • wa: Waktu menunggu I/O disk/network.
  • st: Steal Time. Angka 35.0 st berarti sekitar 35% waktu CPU yang dialokasikan untuk VM tersebut berada dalam kondisi menunggu CPU fisik dari sisi hypervisor

Selain top, anda juga dapat menggunakan:

vmstat 1

atau:

  • Windows

Pada Windows, kondisi ini sedikit berbeda. Windows tidak menampilkan metrik CPU Steal Time (%st) secara langsung seperti Linux melalui Task Manager atau Performance Monitor. Untuk dapat melihat Performance Monitor, Anda bisa ikuti langkah berikut:

Win + R | ketik perfmon

untuk melihat berbagai metrik penggunaan CPU, tetapi Performance Monitor tidak menyediakan metrik %st yang setara dengan Linux secara langsung. Performance Monitor lebih banyak menampilkan metrik seperti Processor Time, Idle Time, User Time, Privileged Time, dan berbagai performance counter lainnya.

Solusi dan Mitigasi

  • Stop & Start VM (Migrasi Node Host): Pada VPS Cloud modern yang menggunakan arsitektur cluster seperti Cloudaja, melakukan Stop kemudian Start dapat menyebabkan VM dijadwalkan kembali oleh sistem pada compute node yang tersedia. Selain itu, arsitektur VPS Cloudaja juga memungkinkan Live Migration tanpa downtime .Untuk kebutuhan maintenance atau restart secara terjadwal, CloudAja juga menyediakan fitur VM Power Tasks yang memungkinkan anda menjadwalkan aksi Start, Stop/Shut Down, maupun Reboot secara otomatis melalui Client Area. Panduan VM Power Tasks CloudAja.
  • Upgrade ke Dedicated Server: Beralih dari tipe shared vCPU ke Dedicated CPU jika memerlukan jaminan performa CPU tanpa interferensi tetangga.

Promo Buat Kamu !

Untuk kamu yang memerlukan layanan cloud kamu bisa lo order di CloudAja dan untuk kamu yang pertama kali order bisa dapat diskon 50% lo ! buktikan sekarang juga !

Leave a Reply

Your email address will not be published. Required fields are marked *