pidstat adalah singkatan dari PID Statistics.
Alat ini dapat memantau proses individual yang dikelola oleh kernel dan menghasilkan laporan. Itu dapat memantau PID tertentu (id proses), atau semua proses yang berjalan di sistem.
pidstat adalah bagian dari utilitas sysstat.
Alat ini melaporkan berbagai statistik termasuk CPU yang digunakan oleh suatu proses, statistik penggunaan disk dari suatu proses, statistik untuk utas yang terkait dengan tugas yang dipilih dan proses anak.
Anda harus menginstal paket systat untuk menggunakan perintah ini.
yum install sysstat
1. Tampilkan Statistik untuk SEMUA Proses yang Berjalan (atau Proses Tertentu)
Gunakan opsi -p ALL untuk melihat statistik kinerja dari semua proses yang berjalan seperti yang ditunjukkan di bawah ini.
Secara default ini akan menampilkan penggunaan CPU. Namun, Anda dapat mengubahnya ke statistik kinerja lainnya seperti yang ditunjukkan pada contoh selanjutnya.
# pidstat -p ALL | wc -l 165 # pidstat -p ALL | head Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 05:00:03 PID %usr %system %guest %CPU CPU Command 05:00:03 1 0.00 0.00 0.00 0.00 0 init 05:00:03 2 0.00 0.00 0.00 0.00 0 kthreadd 05:00:03 3 0.00 0.00 0.00 0.00 0 ksoftirqd/0 05:00:03 6 0.00 0.00 0.00 0.00 0 migration/0 05:00:03 7 0.00 0.00 0.00 0.00 0 watchdog/0 05:00:03 8 0.00 0.00 0.00 0.00 0 cpuset 05:00:03 9 0.00 0.00 0.00 0.00 0 khelper
Gunakan -p PID untuk memantau statistik kinerja untuk proses tertentu seperti yang ditunjukkan di bawah ini.
# pidstat -p 13203 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 05:04:29 PID %usr %system %guest %CPU CPU Command 05:04:29 13203 0.00 0.00 0.00 0.00 0 vim
Jika Anda baru mengenal paket systat, Anda juga harus memahami data statistik kinerja yang disediakan oleh perintah sar.
2. Tampilkan Statistik Kinerja berdasarkan Nama Proses menggunakan -C
Contoh berikut akan menampilkan statistik kinerja untuk semua proses yang cocok dengan kata kunci tertentu (misalnya:mysql).
# pidstat -C "mysql" Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:33:14 PID %usr %system %guest %CPU CPU Command 06:33:14 23132 0.00 0.00 0.00 0.00 0 mysqld_safe 06:33:14 23493 0.06 0.02 0.00 0.08 0 mysqld
Catatan:Dalam contoh di atas, opsi -C adalah singkatan dari "Nama Perintah". yaitu Ini akan mencari nama perintah proses dengan kata kunci yang diberikan.
3. Ulangi Output pada Interval Tertentu
Secara default, output tidak akan diulang. Misalnya, opsi -u adalah untuk menampilkan statistik penggunaan CPU dari tugas dan ini adalah statistik default yang diberikan oleh perintah pidstat. Ini akan menampilkan output hanya satu kali.
# pidstat -p 23493 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:52:35 PID %usr %system %guest %CPU CPU Command 06:52:36 23493 1.00 0.00 0.00 1.00 0 mysqld
Untuk mengulang output, tentukan interval dalam detik sebagai parameter terakhir. Misalnya, contoh berikut akan mengulangi output setiap 1 detik (sampai Anda menekan Ctrl-C).
# pidstat -p 23493 1 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:52:35 PID %usr %system %guest %CPU CPU Command 06:52:36 23493 1.00 0.00 0.00 1.00 0 mysqld 06:52:37 23493 0.00 0.00 0.00 0.00 0 mysqld 06:52:38 23493 0.00 0.00 0.00 0.00 0 mysqld 06:52:39 23493 0.00 0.00 0.00 0.00 0 mysqld 06:52:40 23493 0.00 0.00 0.00 0.00 0 mysqld 06:52:41 23493 0.00 0.00 0.00 0.00 0 mysqld ..
Berikut ini akan mengulangi output setiap 5 detik (sampai Anda menekan Ctrl-C).
# pidstat -p 23493 5
4. Tampilkan Statistik I/O untuk Proses Tertentu menggunakan -d
Gunakan opsi -d untuk melaporkan statistik proses I/O. Outputnya menampilkan atribut yang berbeda seperti PID, kecepatan baca dan tulis disk dalam kB/s seperti yang ditunjukkan di bawah ini.
Contoh berikut menampilkan penggunaan disk untuk PID 23493 setiap 1 detik.
# pidstat -p 23493 -d 1 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:48:33 PID kB_rd/s kB_wr/s kB_ccwr/s Command 06:48:34 23493 0.00 0.00 0.00 mysqld 06:48:35 23493 0.00 0.00 0.00 mysqld 06:48:36 23493 0.00 0.00 0.00 mysqld 06:48:37 23493 0.00 0.00 0.00 mysqld 06:48:38 23493 0.00 0.00 0.00 mysqld 06:48:39 23493 0.00 0.00 0.00 mysqld 06:48:40 23493 0.00 0.00 0.00 mysqld 06:48:41 23493 0.00 0.00 0.00 mysqld
5. Tampilkan Aktivitas Paging untuk Proses Tertentu menggunakan -r
Gunakan opsi -r untuk menampilkan kesalahan halaman dan penggunaan memori untuk tugas tertentu (PID).
# pidstat -p 23493 -r 1 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:58:48 PID minflt/s majflt/s VSZ RSS %MEM Command 06:58:49 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:50 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:51 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:52 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:53 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:54 23493 0.00 0.00 398876 33468 3.28 mysqld 06:58:55 23493 0.00 0.00 398876 33468 3.28 mysqld
6. Tampilkan Nama Perintah dan Argumennya menggunakan opsi -l
Secara default, pidstat hanya menampilkan nama perintah. yaitu Tanpa path lengkap dari perintah dan argumennya. Misalnya, di kolom perintah Anda hanya akan melihat “java” (yang merupakan nama program saja).
$ pidstat -C java Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 11:00:25 PID %usr %system %guest %CPU CPU Command 11:00:25 3288 0.04 0.03 0.00 0.07 0 java 11:00:25 17861 0.03 0.02 0.00 0.05 6 java
Namun ketika Anda menggunakan opsi -l, itu akan menampilkan path lengkap dari perintah, dan semua argumennya seperti yang ditunjukkan di bawah ini.
$ pidstat -C java -l Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 11:00:31 PID %usr %system %guest %CPU CPU Command 11:00:31 3288 0.04 0.03 0.00 0.07 0 /usr/bin/java -Djava.util.logging.config.file=/home/tomcat/apache-tomcat-7.0.56/conf/logging.properties 11:00:31 17861 0.03 0.02 0.00 0.05 6 java -jar /home/rabbit/myapp.jar /home/app/conf/myapp.conf
Untuk mendapatkan statistik pada interval reguler untuk tugas, cukup lewati jumlah detik di mana Anda ingin melihat statistiknya,
# pidstat -p 23493 1 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 06:25:50 PID %usr %system %guest %CPU CPU Command 06:25:51 23493 0.00 0.00 0.00 0.00 0 mysqld 06:25:52 23493 0.00 0.00 0.00 0.00 0 mysqld
Seperti yang terlihat di atas, melihat statistik proses mysqld setiap 1 detik.
Anda juga dapat mengambil beberapa id proses dari keluaran perintah teratas dan melihatnya di sini untuk memahami penggunaan sumber daya sistemnya secara berkala.
7. Tampilkan Output pada Interval Reguler untuk X Jumlah Kali
Dimungkinkan juga untuk mendapatkan laporan untuk beberapa kali pada interval tertentu untuk daftar proses seperti yang ditunjukkan di bawah ini.
Tambahkan berapa kali sebagai parameter terakhir (setelah interval dalam detik).
Misalnya, berikut ini akan menampilkan output 5 kali (dengan interval reguler 2 detik). Di akhir laporan, itu juga akan menampilkan nilai “Rata-rata”.
# pidstat 2 5 Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 07:14:11 PID %usr %system %guest %CPU CPU Command 07:14:13 1445 0.00 0.50 0.00 0.50 0 pidstat 07:14:13 28222 0.50 0.00 0.00 0.50 0 cma 07:14:13 PID %usr %system %guest %CPU CPU Command 07:14:15 1445 0.00 0.50 0.00 0.50 0 pidstat 07:14:15 28222 0.00 0.50 0.00 0.50 0 cma 07:14:15 PID %usr %system %guest %CPU CPU Command 07:14:17 1445 0.50 0.00 0.00 0.50 0 pidstat 07:14:17 19614 0.00 0.50 0.00 0.50 0 nailswebd 07:14:17 PID %usr %system %guest %CPU CPU Command 07:14:19 1445 0.50 0.50 0.00 1.00 0 pidstat 07:14:19 PID %usr %system %guest %CPU CPU Command 07:14:21 1445 0.00 0.51 0.00 0.51 0 pidstat 07:14:21 28222 0.00 0.51 0.00 0.51 0 cma Average: PID %usr %system %guest %CPU CPU Command Average: 1445 0.20 0.40 0.00 0.60 - pidstat Average: 19614 0.00 0.10 0.00 0.10 - nailswebd Average: 28222 0.10 0.20 0.00 0.30 - cma
8. Tampilkan Statistik Proses Terpilih dan Anaknya menggunakan -T
Gunakan opsi -T untuk menentukan ANAK atau TUGAS. Dalam hal ini statistik akan dilaporkan untuk TUGAS, atau tugas dan semua anak-anaknya. Anda juga dapat menentukan SEMUA.
Kemungkinan nilai untuk -T:CHILD, atau TASKS, atau ALL.
# pidstat -T CHILD | head Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 10:13:34 IST PID usr-ms system-ms guest-ms Command 10:13:34 IST 1 7950 3340 0 init 10:13:34 IST 3 0 420 0 ksoftirqd/0 10:13:34 IST 8 0 10 0 migration/0 10:13:34 IST 10 0 1190 0 rcu_sched 10:13:34 IST 11 10 0 0 watchdog/0 10:13:34 IST 12 10 0 0 watchdog/1 10:13:34 IST 13 0 450 0 ksoftirqd/1
9. Tampilkan Statistik Proses Dependen dalam Format Pohon menggunakan -t
Menggunakan opsi -t, Anda dapat menampilkan output dalam format pohon seperti yang ditunjukkan di bawah ini.
# pidstat -t -C "mysql" Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ 18:47:54 PID TID %usr %system %guest %CPU CPU Command 18:47:54 1646 - 0.00 0.00 0.00 0.00 0 mysql 18:47:54 - 1646 0.00 0.00 0.00 0.00 0 |__mysql 18:47:54 23132 - 0.00 0.00 0.00 0.00 0 mysqld_safe 18:47:54 - 23132 0.00 0.00 0.00 0.00 0 |__mysqld_safe 18:47:54 23493 - 0.06 0.02 0.00 0.08 0 mysqld 18:47:54 - 23493 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23504 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23509 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23510 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23512 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23515 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23516 0.01 0.00 0.00 0.02 0 |__mysqld 18:47:54 - 23517 0.00 0.00 0.00 0.00 0 |__mysqld 18:47:54 - 23518 0.01 0.01 0.00 0.02 0 |__mysqld 18:47:54 - 23519 0.00 0.00 0.00 0.00 0 |__mysqld ..
10. Tampilkan Semua Statistik Secara Horizontal pada Satu Baris menggunakan -h
Jika Anda meminta pidstat untuk melaporkan lebih dari satu statistik, ini akan menampilkan statistik satu demi satu. Pada contoh berikut, pertama-tama akan ditampilkan statistik performa untuk opsi “r”, lalu opsi “u”, dan terakhir opsi “d”.
# pidstat -rud
Namun jika Anda ingin semua statistik tersebut ditampilkan dalam satu baris untuk proses individual, gunakan opsi -h seperti yang ditunjukkan di bawah ini.
# pidstat -rud -h | head Linux 3.0.101-0.7.17-default (thegeekstuff) 07/30/14 _x86_64_ # Time PID %usr %system %guest %CPU CPU minflt/s majflt/s VSZ RSS %MEM kB_rd/s kB_wr/s kB_ccwr/s Command 1406823329 1 0.04 0.19 0.00 0.24 2 21.50 0.03 26944 2768 0.07 -1.00 -1.00 -1.00 init 1406823329 3 0.00 0.03 0.00 0.03 0 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 ksoftirqd/0 1406823329 8 0.00 0.00 0.00 0.00 0 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 migration/0 1406823329 10 0.00 0.08 0.00 0.08 2 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 rcu_sched 1406823329 13 0.00 0.03 0.00 0.03 1 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 ksoftirqd/1 1406823329 14 0.00 0.00 0.00 0.00 1 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 migration/1 1406823329 18 0.00 0.01 0.00 0.01 2 0.00 0.00 0 0 0.00 -1.00 -1.00 -1.00 ksoftirqd/2