Topik ini menjelaskan cara memecahkan dan mengatasi penggunaan CPU tinggi pada instans Windows.
Deskripsi masalah
Penggunaan CPU pada instans Windows dianggap tinggi jika mencapai 80% atau lebih.
Kemungkinan penyebab
Penggunaan CPU tinggi dapat disebabkan oleh hal-hal berikut:
Instans terinfeksi virus atau trojan.
Perangkat lunak antivirus pihak ketiga sedang berjalan pada instans.
Aplikasi atau driver pada instans mengalami anomali, atau suatu aplikasi memiliki penggunaan I/O tinggi atau laju interrupt yang tinggi.
Solusi
Langkah 1: Menentukan sumber masalah
Pada instans Windows, Anda dapat menggunakan tool seperti Task Manager dan Resource Monitor untuk menentukan penyebab penggunaan CPU tinggi. Topik ini menggunakan Resource Monitor pada sistem operasi Windows Server 2022 sebagai contoh.
Berikut cara menggunakan Resource Monitor pada Windows Server 2022 untuk mengidentifikasi penyebab penggunaan CPU tinggi.
Gunakan koneksi VNC untuk terhubung ke Simple Application Server. Untuk informasi selengkapnya, lihat Connect to a server for rescue (console).
Di bagian bawah desktop, klik tombol Search, masukkan
Resource Monitor, lalu klik OK.Pada jendela Resource Monitor, periksa proses-proses yang menyebabkan penggunaan CPU tinggi.

Catat ID proses (PID) dan nama proses tersebut.
Buka jendela Task Manager, klik tab Details, lalu temukan proses berdasarkan nama dan PID yang telah dicatat. Klik kanan setiap nama proses, pilih Open file location, lalu periksa apakah proses tersebut merupakan program berbahaya.
Langkah 2: Menganalisis dan mengatasi masalah
Tentukan apakah proses yang menyebabkan penggunaan CPU tinggi merupakan proses normal atau abnormal, lalu ikuti langkah-langkah yang sesuai untuk mengatasi masalah tersebut.
Kemungkinan penyebab | Operasi |
Proses normal | Secara umum, akses bisnis yang sering atau layanan Windows seperti layanan pembaruan dapat mengonsumsi traffic jaringan dan resource CPU yang tinggi. Catatan
|
Proses abnormal | Penggunaan CPU yang sangat tinggi secara abnormal dapat disebabkan oleh virus atau trojan berbahaya. Terkadang, program berbahaya pihak ketiga dapat menyamar sebagai svchost.exe atau Tcpsvcs.exe—proses sistem operasi—dan menyebabkan penggunaan CPU tinggi. Anda harus menemukan dan menghentikan proses abnormal tersebut secara manual. Catatan Jika Anda tidak dapat menentukan apakah suatu proses merupakan virus atau trojan, cari nama proses tersebut di internet untuk memastikannya. Sebelum menghapus proses tersebut, buat snapshot untuk backup data Anda. Untuk informasi selengkapnya, lihat Create a snapshot.
|
Tool umum
Bagian berikut menjelaskan tool yang digunakan untuk menentukan penyebab penggunaan CPU tinggi di Windows.
Task Manager
Task Manager menampilkan daftar aplikasi yang sedang berjalan, yang membantu Anda mengidentifikasi aplikasi dengan penggunaan CPU tinggi. Gambar berikut menunjukkan halaman Task Manager.

Saat memeriksa penggunaan CPU pada tab Performance, klik kanan grafik penggunaan CPU dan pilih .
Gambar berikut menunjukkan penggunaan dua CPU logis.

Jika penggunaan CPU dari satu proses melonjak hampir mencapai 100% sementara penggunaan CPU proses lain tidak berubah signifikan, penyebabnya kemungkinan adalah pemrosesan I/O jaringan.
Resource Monitor
Resource Monitor menyediakan tampilan grafis penggunaan CPU. Anda juga dapat mencari proses terkait berdasarkan handle dan modul.

Process Explorer
Process Explorer adalah tool Microsoft Sysinternals. Dengan mengonfigurasi simbol yang tepat, Anda dapat memeriksa tumpukan panggilan (call stacks) thread aplikasi untuk menemukan driver yang berpotensi bermasalah. Untuk mengunduh Process Explorer, kunjungi Process Explorer.
Gambar berikut menunjukkan antarmuka Process Explorer.

Performance Monitor
Performance Monitor adalah tool Microsoft untuk mengumpulkan counter performa dari berbagai komponen. Untuk menganalisis konsumsi resource CPU sistem, Anda dapat memeriksa beberapa counter berikut.
Tiga parameter inti berikut terkait dengan performa:
\Processor(_Total)\% Processor Time: Persentase waktu prosesor mengeksekusi thread non-idle.\Processor(_Total)\% Processor Time=\Processor(*)\% User Time+\Processor(*)\% Privileged Time.\Processor(*)\% User Time: Menunjukkan waktu yang dikonsumsi prosesor untuk mengeksekusi kode program. Counter ini membantu Anda menentukan aplikasi atau panggilan fungsi mana yang menghabiskan lebih banyak waktu.\Processor(*)\% Privileged Time: Waktu yang dihabiskan aplikasi untuk mengeksekusi system call di kernel, seperti panggilan untuk driver, paket permintaan I/O (IRPs), dan context switch. Jika sistem operasi menghabiskan lebih dari 30% waktunya dalamPrivileged Time, instans tersebut sedang melakukan operasi terkait throughput I/O tinggi.Saat
% Privileged Timetinggi, Anda perlu memeriksa lebih lanjut% DPC Time,% Interrupt Time, danContext Switches/sec.Nilai
% DPC Timedan% Interrupt Timeyang tinggi menunjukkan bahwa perangkat yang tidak dikenal sedang melakukan banyak operasi atau memiliki performa buruk.Nilai
Context Switchyang tinggi menunjukkan bahwa kernel sering melakukan switching antar proses atau thread. Untuk informasi selengkapnya, lihat The Case of the 2 Million Context Switches dan Mark Russinovich's The Case of the System Process CPU Spikes.Nilai
Context Switches/secyang tinggi menunjukkan bahwa banyak thread berada dalam status Ready. Anda perlu mengurangi jumlah thread untuk mengatasi masalah tersebut.