GNU/Linux >> Belajar Linux >  >> Linux

Cara mendapatkan total penggunaan cpu di Linux menggunakan C++

cat /proc/stat

http://www.linuxhowtos.org/System/procstat.htm

Saya setuju dengan jawaban ini di atas. Baris cpu dalam file ini memberikan jumlah total "sekejap" yang dihabiskan sistem Anda untuk melakukan berbagai jenis pemrosesan.

Yang perlu Anda lakukan adalah mengambil 2 bacaan dari file ini, dipisahkan dengan interval waktu yang Anda perlukan. Angka-angka tersebut meningkatkan nilai (tunduk pada rollover bilangan bulat) sehingga untuk mendapatkan %cpu Anda perlu menghitung berapa banyak jiffie yang telah berlalu selama interval Anda, versus berapa banyak jiffie yang dihabiskan untuk melakukan pekerjaan.

misalnya pada pukul 14:00:00 Anda memiliki

cpu 4698 591 262 8953 916 449 531

total_jiffies_1 =(jumlah semua nilai) =16400

work_jiffies_1 =(jumlah pengguna,bagus,sistem =3 nilai pertama) =5551

dan pada 14:00:05 Anda memiliki

cpu 4739 591 289 9961 936 449 541

total_jiffies_2 =17506

work_jiffies_2 =5619

Jadi penggunaan %cpu selama periode ini adalah:

work_over_period =work_jiffies_2 - work_jiffies_1 =68

total_over_period =total_jiffies_2 - total_jiffies_1 =1106

%cpu =work_over_period / total_over_period * 100 =6,1%

Semoga itu sedikit membantu.


Coba baca /proc/loadavg . Tiga angka pertama adalah jumlah proses yang benar-benar berjalan (yaitu, menggunakan CPU), dirata-ratakan masing-masing selama 1, 5, dan 15 menit terakhir.

http://www.linuxinsight.com/proc_loadavg.html


Linux
  1. Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

  2. Cara Memeriksa Ukuran Total RAM dan Penggunaan Memori di Linux

  3. Cara mendapatkan penggunaan CPU

  1. Cara Menghitung Penggunaan Memori di Linux menggunakan sar, ps, dan gratis

  2. Bagaimana cara mendapatkan jumlah CPU di Linux menggunakan C?

  3. Bagaimana cara mendapatkan nama pengguna di C/C++ di Linux?

  1. Dapatkan Informasi CPU di Linux

  2. Cara Mendapatkan Suhu CPU di Ubuntu Linux

  3. Bagaimana cara mendapatkan kecepatan jam CPU ARM di Linux?