pidstat significa Estadísticas PID.
Esta herramienta puede monitorear un proceso individual administrado por kernel y generar un informe. Puede monitorear un PID específico (ID de proceso) o todo el proceso que se ejecuta en el sistema.
pidstat es una parte de la utilidad sysstat.
Esta herramienta informa varias estadísticas, incluida la CPU utilizada por un proceso, estadísticas de uso de disco de un proceso, estadísticas de subprocesos asociados con tareas seleccionadas y procesos secundarios.
Debe instalar el paquete systat para usar este comando.
yum install sysstat
1. Mostrar estadísticas para TODOS los procesos en ejecución (o un proceso específico)
Utilice la opción -p TODO para ver las estadísticas de rendimiento de todos los procesos en ejecución, como se muestra a continuación.
De forma predeterminada, esto mostrará el uso de la CPU. Pero puede cambiar esto a cualquier otra estadística de rendimiento como se muestra en ejemplos posteriores.
# 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
Use -p PID para monitorear las estadísticas de rendimiento de un proceso en particular, como se muestra a continuación.
# 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
Si es nuevo en el paquete systat, también debe comprender los datos de estadísticas de rendimiento proporcionados por el comando sar.
2. Mostrar estadísticas de rendimiento basadas en el nombre del proceso usando -C
El siguiente ejemplo mostrará estadísticas de rendimiento para todo el proceso que coincida con una palabra clave específica (por ejemplo: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
Nota:En el ejemplo anterior, la opción -C significa "Nombre del comando". es decir, buscará el nombre del comando del proceso con la palabra clave dada.
3. Repita la salida a cierto intervalo
Por defecto, la salida no se repetirá. Por ejemplo, la opción -u es para mostrar las estadísticas de uso de la CPU de las tareas y estas son las estadísticas predeterminadas proporcionadas por el comando pidstat. Esto mostrará la salida solo una vez.
# 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
Para repetir la salida, especifique el intervalo en segundos como último parámetro. Por ejemplo, el siguiente ejemplo repetirá la salida cada 1 segundo (hasta que presione 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 ..
Lo siguiente repetirá la salida cada 5 segundos (hasta que presione Ctrl-C).
# pidstat -p 23493 5
4. Mostrar estadísticas de E/S para un proceso específico usando -d
Utilice la opción -d para informar las estadísticas de E/S del proceso. La salida muestra diferentes atributos como PID, velocidad de lectura y escritura del disco en kB/s como se muestra a continuación.
El siguiente ejemplo muestra el uso del disco para PID 23493 cada 1 segundo.
# 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. Mostrar actividad de paginación para un proceso específico usando -r
Use la opción -r para mostrar errores de página y uso de memoria para una tarea determinada (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. Muestra el nombre del comando y sus argumentos usando la opción -l
De forma predeterminada, pidstat muestra solo el nombre del comando. es decir, sin la ruta completa del comando y su argumento. Por ejemplo, en la columna de comandos verá solo "java" (que es solo el nombre del programa).
$ 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
Sin embargo, cuando usa la opción -l, mostrará la ruta completa del comando y todos sus argumentos, como se muestra a continuación.
$ 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
Para obtener las estadísticas en intervalos regulares para las tareas, simplemente pase la cantidad de segundos en los que desea ver las estadísticas,
# 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
Como se vio arriba, observando las estadísticas del proceso mysqld cada segundo.
También puede obtener algunos ID de proceso de la salida del comando principal y verlos aquí para comprender el uso de los recursos del sistema en intervalos regulares.
7. Muestra la salida a intervalos regulares por X número de veces
También es posible obtener informes de una cierta cantidad de veces a intervalos determinados para la lista de procesos, como se muestra a continuación.
Agregue el número de veces como último parámetro (después de los intervalos en segundos).
Por ejemplo, lo siguiente mostrará la salida 5 veces (en un intervalo regular de 2 segundos). Al final del informe, también mostrará los valores "promedio".
# 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. Mostrar estadísticas del proceso seleccionado y su hijo usando -T
Use la opción -T para especificar NIÑO o TAREAS. En este caso se reportarán las estadísticas para TAREAS, o tareas y todos sus hijos. También puede especificar TODO.
Valores posibles para -T:NIÑO, TAREAS o TODO.
# 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. Mostrar estadísticas del proceso dependiente en formato de árbol usando -t
Usando la opción -t, puede mostrar la salida en un formato de árbol como se muestra a continuación.
# 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. Mostrar todas las estadísticas horizontalmente en una sola línea usando -h
Si le pide a pidstat que informe más de una estadística, muestra una estadística tras otra. En el siguiente ejemplo, primero mostrará las estadísticas de rendimiento para la opción "r", luego la opción "u" y finalmente la opción "d".
# pidstat -rud
Sin embargo, si desea que todas esas estadísticas se muestren en una sola línea para el proceso individual, use la opción -h como se muestra a continuación.
# 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