Di halaman Wikipedia untuk waktu CPU , katanya
Waktu CPU diukur dalam tick atau detik. Seringkali, berguna untuk mengukur waktu CPU sebagai persentase dari kapasitas CPU, yang disebut penggunaan CPU.
Saya tidak mengerti bagaimana durasi waktu dapat diganti dengan persentase. Ketika saya melihat top
, tidak %CPU
memberi tahu saya bahwa MATLAB
menggunakan 2,17 core saya?
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
18118 jasl 20 0 9248400 261528 78676 S 217.2 0.1 8:14.75 MATLAB
Pertanyaan
Untuk lebih memahami apa itu penggunaan CPU, bagaimana cara menghitung penggunaan CPU sendiri?
linux
performance
central-processing-unit
cpu-usage
Jasmine Lognnes
sumber
sumber
1
).Jawaban:
Waktu CPU dialokasikan dalam irisan waktu diskrit (ticks). Untuk sejumlah waktu tertentu, CPU sibuk, di lain waktu tidak (yang diwakili oleh proses idle). Pada gambar di bawah, CPU sibuk untuk 6 dari 10 irisan CPU. 6/10 = .60 = 60% dari waktu sibuk (dan karena itu akan ada 40% waktu idle).
Sebuah persentase didefinisikan sebagai "nomor atau tingkat yang dinyatakan sebagai sejumlah bagian dari sesuatu yang dibagi menjadi 100 bagian". Jadi dalam kasus ini, bagian-bagian itu adalah irisan waktu yang terpisah dan sesuatu adalah irisan waktu yang sibuk vs irisan waktu idle - tingkat irisan waktu yang sibuk untuk menganggur.
Karena CPU beroperasi dalam GHz (miliaran siklus per detik). Sistem operasi memotong waktu itu dalam unit yang lebih kecil yang disebut kutu. Mereka tidak benar-benar 1/10 detik. Tingkat kutu di windows adalah 10 juta kutu dalam satu detik dan di Linux itu
sysconf(_SC_CLK_TCK)
(biasanya 100 kutu per detik).Dalam sesuatu seperti
top
, siklus CPU yang sibuk kemudian dipecah menjadi persentase hal-hal seperti waktu pengguna dan waktu sistem. Ditop
Linux dan perfmon di Windows, Anda akan sering mendapatkan tampilan yang melampaui 100%, itu karena totalnya adalah 100% * the_number_of_cpu_cores.Dalam sistem operasi, tugas penjadwal untuk mengalokasikan irisan berharga ini ke proses, jadi penjadwal adalah yang melaporkan ini.
sumber
Waktu CPU adalah waktu proses menggunakan CPU - mengonversinya menjadi persentase dilakukan dengan membagi dengan jumlah waktu nyata yang dilewati.
Jadi, jika saya memiliki proses yang menggunakan 1 detik waktu CPU selama 2 detik, itu menggunakan 50% CPU.
Dalam kasus proses MATLAB Anda, 217% menunjukkan bahwa itu digunakan 2,17 detik waktu CPU per detik selama interval sampel terakhir - secara efektif, memonopoli 2 core CPU dan mengambil sepertiga.
sumber