CPUSTAT - Memantau pemanfaatan CPU dengan menjalankan proses di Linux

CPUSTAT - Memantau pemanfaatan CPU dengan menjalankan proses di Linux

Cpustat adalah program pengukuran kinerja sistem yang kuat untuk Linux, ditulis menggunakan bahasa pemrograman GO. Ia berupaya mengungkapkan pemanfaatan dan saturasi CPU dengan cara yang efektif, menggunakan metode saturasi dan kesalahan pemanfaatan (penggunaan) (metodologi untuk menganalisis kinerja sistem apa pun).

Ini mengekstrak sampel frekuensi yang lebih tinggi dari setiap proses yang dieksekusi pada sistem dan kemudian merangkum sampel ini pada frekuensi yang lebih rendah. Misalnya, dapat mengukur setiap proses setiap 200ms dan merangkum sampel -sampel ini setiap 5 detik, termasuk nilai min/rata -rata/maks untuk metrik tertentu.

Disarankan Baca: 20 Alat baris perintah untuk memantau kinerja Linux

Cpustat Output data dengan dua cara yang mungkin: daftar teks murni dari interval ringkasan dan dasbor pengguliran berwarna -warni dari setiap sampel.

Cara menginstal cpustat di linux

Anda harus memiliki Go (Golang) diinstal pada sistem Linux Anda untuk digunakan cpustat, Klik tautan di bawah ini untuk mengikuti langkah -langkah instalasi Golang yaitu jika Anda tidak menginstalnya:

  1. Instal Golang (Bahasa Pemrograman GO) di Linux

Setelah Anda menginstal Pergi, ketik pergi mendapatkan Perintah di bawah untuk menginstalnya, perintah ini akan menginstal cpustat biner di Anda Gobin variabel:

# pergi Gethub.com/uber-common/cpustat 

Cara menggunakan cpustat di linux

Saat proses instalasi selesai, jalankan cpustat sebagai berikut dengan hak istimewa root menggunakan perintah sudo yaitu jika Anda mengendalikan sistem sebagai pengguna non-root, jika tidak Anda akan mendapatkan kesalahan seperti yang ditunjukkan:

$ $ Gobin/cpustat Program ini menggunakan antarmuka NetLink Taskstats, jadi harus dijalankan sebagai root. 

Catatan: Untuk berlari cpustat Serta semua program GO lainnya yang telah Anda instal di sistem Anda seperti perintah lainnya, termasuk Gobin variabel di Anda JALUR Variabel Lingkungan. Buka tautan di bawah ini untuk mempelajari cara mengatur variabel jalur di Linux.

  1. Pelajari cara mengatur variabel $ path Anda secara permanen di Linux

Beginilah caranya cpustat karya; itu /Proc Direktori ditanya untuk mendapatkan daftar ID proses saat ini untuk setiap interval, dan:

  • Untuk setiap PID, baca /proc/pid/stat, Kemudian hitung perbedaan dari sampel sebelumnya.
  • Jika itu adalah PID baru, baca /proc/pid/cmdline.
  • Untuk setiap PID, kirim pesan NetLink untuk mengambil taskstats, menghitung perbedaan dari sampel sebelumnya.
  • mengambil /proc/stat Untuk mendapatkan statistik sistem secara keseluruhan.

Sekali lagi, setiap interval tidur disesuaikan untuk memperhitungkan jumlah waktu yang dikonsumsi mengambil semua statistik ini. Selain itu, setiap sampel juga mencatat waktu yang dibutuhkan untuk mengukur setiap pengukuran dengan waktu berlalu yang sebenarnya antara sampel. Ini berupaya memperhitungkan penundaan di cpustat itu sendiri.

Saat dijalankan tanpa argumen, cpustat akan menampilkan yang berikut secara default: Interval pengambilan sampel: 200ms, interval ringkasan: 2s (10 sampel), menunjukkan 10 procs teratas, filter pengguna: semua, filter PID: Semua seperti yang ditunjukkan pada tangkapan layar di bawah ini:

$ sudo $ gobin/cpustat 
CPUSTAT - Monitor Linux CPU Penggunaan

Dari output di atas, berikut ini adalah makna metrik ringkasan sistem-lebar yang ditampilkan sebelum bidang:

  • USR - Min/AVG/MAX Mode Pengguna waktu menjalankan waktu sebagai persentase dari CPU.
  • sys - Min/AVG/MAX SISTEM MODE berjalan waktu sebagai persentase dari CPU.
  • Bagus - MIN/AVG/MAX PENGGUNA PENGGUNA PRITITAS RENCARA RENCARA RENDAHS sebagai persentase dari CPU.
  • menganggur - Min/AVG/MAX Mode Pengguna waktu menjalankan waktu sebagai persentase dari CPU.
  • Iowait - Min/AVG/MAX Tunda Waktu Menunggu Disk IO.
  • PRUN - Min/AVG/Max Count of Proses dalam keadaan runnable (sama seperti rata -rata beban).
  • pblock - Min/AVG/MAX COBOT PENGOBATAN DALAM DISK IO.
  • PSTART - Jumlah proses/utas yang dimulai dalam interval ringkasan ini.

Masih dari output di atas, untuk proses yang diberikan, kolom yang berbeda berarti:

  • nama - Nama Proses Umum Dari/Proc/PID/Stat atau/Proc/PID/CMDline.
  • pid - ID proses, juga disebut sebagai "TGID".
  • Min - Sampel terendah dari waktu sistem+waktu untuk PID, diukur dari/proc/pid/stat. Skala adalah persentase dari CPU.
  • Max - Sampel tertinggi waktu sistem+waktu untuk PID ini, juga diukur dari/proc/pid/stat.
  • USR - Waktu pengguna rata -rata untuk PID selama periode ringkasan, diukur dari/proc/pid/stat.
  • sys - Waktu sistem rata -rata untuk PID selama periode ringkasan, diukur dari/proc/pid/stat.
  • Bagus - menunjukkan nilai "bagus" saat ini untuk proses, diukur dari/proc/pid/stat. Lebih tinggi berarti "lebih baik".
  • runq - Waktu proses dan semua utasnya dihabiskan untuk runnable tetapi menunggu untuk berlari, diukur dari taskstats melalui netlink. Skala adalah persentase dari CPU.
  • IOW - Waktu proses dan semua utasnya dihabiskan diblokir oleh disk IO, diukur dari taskstats melalui netlink. Skala adalah persentase dari CPU, rata -rata selama interval ringkasan.
  • menukar - Waktu proses dan semua utasnya dihabiskan untuk ditukar, diukur dari taskstats melalui NetLink. Skala adalah persentase dari CPU, rata -rata selama interval ringkasan.
  • VCX dan ICX - Jumlah total sakelar konteks sukarela berdasarkan proses dan semua utasnya atas interval ringkasan, diukur dari taskstats melalui NetLink.
  • RSS - Nilai RSS saat ini diambil dari/proc/pid/stat. Itu adalah jumlah memori yang digunakan proses ini.
  • CTime - Jumlah Pengguna+SYS CPU Waktu yang Dikonsumsi oleh Menunggu Anak -Anak Yang Keluar Selama Interval Ringkasan Ini, Diukur dari/Proc/PID/Stat.

Perhatikan bahwa proses anak yang sudah berjalan lama sering dapat membingungkan pengukuran ini, karena waktu dilaporkan hanya ketika proses anak keluar. Namun, ini berguna untuk mengukur dampak pekerjaan cron yang sering dan pemeriksaan kesehatan di mana waktu CPU sering dikonsumsi oleh banyak proses anak.

  • thrd - Jumlah utas di akhir interval ringkasan, diukur dari/proc/pid/stat.
  • Sam - Jumlah sampel untuk proses ini yang termasuk dalam interval ringkasan. Proses yang baru saja dimulai atau keluar mungkin terlihat untuk sampel yang lebih sedikit daripada interval ringkasan.

Perintah berikut menampilkan 10 proses pengguna root teratas yang berjalan pada sistem:

$ sudo $ gobin/cpustat -u root 
Temukan proses menjalankan pengguna root

Untuk menampilkan output dalam mode terminal mewah, gunakan -T Bendera sebagai berikut:

$ sudo $ gobin/cpustat -u roo -t 
Menjalankan Proses Penggunaan Pengguna Root

Untuk melihat x jumlah proses teratas (defaultnya adalah 10), Anda dapat menggunakan -N Bendera, perintah berikut ini menunjukkan 20 proses Linux teratas yang berjalan pada sistem:

$ sudo $ gobin/cpustat -n 20 

Anda juga dapat menulis profil CPU ke file menggunakan -cpuprofile Opsi sebagai berikut dan kemudian gunakan perintah CAT untuk melihat file:

$ sudo $ gobin/cpustat -cpuprofile cpuprof.txt $ cat cpuprof.txt 

Untuk menampilkan info bantuan, gunakan -H Bendera sebagai berikut:

$ sudo $ gobin/cpustat -h 

Temukan info tambahan dari cpustat github repositori: https: // github.com/uber-common/cpustat

Itu saja! Di artikel ini, kami menunjukkan kepada Anda cara menginstal dan menggunakan cpustat, alat pengukur kinerja sistem yang berguna untuk Linux. Bagikan pemikiran Anda dengan kami melalui bagian komentar di bawah ini.