Apa yang dimaksud dengan CPU usage?

Memahami Metrik Penggunaan CPU

Andy Librian

Jun 30, 2016·5 min read

Dalam membaca metrik performa, banyak hal yang dapat membuat kita gagal paham, yang akhirnya dapat menyebabkan kita salah mengambil kesimpulan.

Tulisan ini mengulas tentang bagaimana menghindari kesalahan yang mungkin terjadi ketika membaca metrik tersebut, khususnya metrik CPU.

Informasi apa yang bisa ditangkap dari grafik di atas?

  1. Rata-rata 50% CPU digunakan untuk user space program
  2. Rata-rata 0% CPU digunakan untuk operating system / kernel
  3. Total rata-rata penggunaan CPU = 50%
  4. Angka tersebut merupakan rata-rata selama observasi selama 78 detik.

Dengan informasi tersebut, bisakah kita menyimpulkan bahwa aktivitas CPU tidak begitu padat, jadi bukan faktor yang menyebabkan system kita lambat? Kemudian mari kita lanjutkan untuk menganalisa resource berikutnya [memory]?

Tunggu dulu. Kita perlu tahu dari mana angka 50% tersebut dihitung.

Dalam percobaan ini, saya menggunakan 2 core CPU pada sebuah virtual machine. Angka 50% adalah penggunaan rata-rata dari seluruh [core] CPU. Apakah itu berarti core pertama digunakan 50% dan core kedua digunakan 50%? Belum tentu.

Maka kita butuh metric yang lebih detail, yaitu per-core CPU utilization.

Dari grafik di atas didapat informasi bahwa angka 50% tadi, berasal dari rata-rata : [0% cpu[0] + 100% cpu[1]] / 2 = 50%.

Ini adalah informasi yang penting, karena ada sebuah program yang sedang menggunakan 1 cpu sampai 100%, dan tidak menggunakan cpu lainnya. Biasanya karakteristik seperti ini dimiliki oleh single-threaded application.

Pada kasus ini, 1 cpu digunakan sampai 100%, sehingga menjadi faktor pembatas. Performa bisa ditingkatkan dengan cara membagi beban komputasi ke cpu lainnya.

Selain dengan grafik, metrik cpu juga bisa dibaca menggunakan command line.

top total cpu utilization

top 50% user

top dapat menampilkan per cpu utilization, yaitu dengan cara tekan angka 1 di keyboard.

top cpu pertama 0% dan cpu kedua 100%

htop per cpu utilization

htop cpu pertama 2% dan cpu kedua 100%

vmstat total cpu utilization

vmstat 50% user

mpstat per cpu utilization

mpstat cpu pertama 0% user dan cpu kedua 100% user

Ketika kita membaca sebuah grafik CPU utilization yang mengatakan 50% usr + 20% sys, kemana 30% sisanya? Idle-kah? Belum tentu.

Coba perhatikan kembali contoh mpstat di atas. Selain, %usr, %sys, dan %idle, masih banyak angka lainnya. Mari kita bahas satu per satu.

%usr

adalah waktu yang digunakan CPU menjalankan un-niced user process. Un-niced proses adalah proses standard, yang tidak diberi attribute nice. Sedangkan niced process adalah process yang diberi prioritas tertentu, yang berbeda dengan standard bisa lebih rendah atau lebih tinggi.

Untuk membuat 1 cpu mencapai 100% usr, bisa dilakukan dengan mengeksekusi kode loop seperti di bawah ini. Simpan kode berikut ke dalam file loop.php

Bài mới nhất

Chủ Đề