Table of Contents
Cpustat: supervisa la utilización de la CPU mediante procesos en ejecución en Linux
Cpustat. es un poderoso programa de medición del rendimiento del sistema para Linux, escrito con el lenguaje de programación Go. Intenta revelar la utilización y saturación de la CPU de una manera eficaz, utilizando el método de saturación y errores de utilización (USE) (una metodología para analizar el rendimiento de cualquier sistema).
Extrae muestras de frecuencia más alta de cada proceso ejecutado en el sistema y luego resume estas muestras a una frecuencia más baja. Por ejemplo, puede medir cada proceso cada 200 ms. y resumir estas muestras cada 5. segundos, incluidos los valores mínimo/promedio/máximo para ciertas métricas.
Lectura sugerida: 20 Herramientas de línea de comandos para supervisar el rendimiento de Linux
Cpustat. genera datos de dos formas posibles: una lista de texto puro del intervalo de resumen y un panel de control de desplazamiento colorido de cada muestra.
Cómo instalar Cpustat en Linux
Debe tener Go (GoLang). instalado en su sistema Linux para poder usar cpustat. haga clic en el enlace a continuación para seguir los pasos de instalación de GoLang si no lo tiene instalado:
- Instale GoLang (Go Programming Language) en Linux
Una vez ha instalado Go. escriba el comando go get. a continuación para instalar esto, este comando instalará el binario cpustat. en su variable GOBIN.
# vaya a obtener github.com/uber-common/cpustat
Cómo usar Cpustat en Linux
freestar.config.enabled_slots.push
Cuando se complete el proceso de instalación, ejecute cpustat. de la siguiente manera con privilegios de root usando el comando sudo, es decir, si está controlando el sistema como un usuario no root, de lo contrario obtendrá el error como se muestra:
$ $ GOBIN/cpustat. Este programa usa la interfaz netlink taskstats, por lo que debe ejecutarse como root.
Nota. para ejecutar cpustat. así como todos los demás programas de Go que haya instalado en su sistema como cualquier otro comando, incluya variable GOBIN. en su variable de entorno PATH. Abra el enlace a continuación para aprender cómo configurar la variable PATH en Linux.
- Aprenda a configurar sus variables $ PATH de forma permanente en Linux
Así es como cpustat. funciona; se consulta el directorio/proc para obtener la lista actual de ID de proceso para cada intervalo, y:
- para cada PID, lea /proc/pid/stat. luego calcular la diferencia con respecto a la muestra anterior.
- en caso de que sea un PID nuevo, lea /proc/pid/cmdline.
- para cada PID, envíe un mensaje netlink para obtener las estadísticas de las tareas, calcule la diferencia con la muestra anterior.
- obtenga /proc/stat. para obtener las estadísticas generales del sistema.
De nuevo, cada intervalo de sueño se ajusta para tener en cuenta la cantidad de tiempo consumido para obtener todas estas estadísticas. Además, cada muestra también registra el tiempo que tomó escalar cada medición por el tiempo real transcurrido entre muestras. Esto intenta dar cuenta de los retrasos en el propio cpustat.
Cuando se ejecuta sin ningún argumento, cpustat. mostrará lo siguiente de forma predeterminada: intervalo de muestreo: 200 ms, intervalo de resumen: 2 s (10 muestras ), que muestra los 10 procesos principales, filtro de usuario: todos, filtro pid: todos como se muestra en la captura de pantalla siguiente:
$ sudo $ GOBIN/cpustat
Cpustat-Supervisar el uso de la CPU de Linux
Del resultado anterior, los siguientes son los significados de las métricas de resumen de todo el sistema que se muestran antes de los campos:
- usr. tiempo de ejecución mínimo/promedio/máximo del modo de usuario como porcentaje de una CPU.
- sys. tiempo de ejecución mínimo/promedio/máximo del modo de sistema como un porcentaje de una CPU.
- agradable. tiempo de ejecución de prioridad baja del modo de usuario mínimo/promedio/máximo como un porcentaje de una CPU .
- inactivo. tiempo de ejecución mínimo/promedio/máximo en modo de usuario como porcentaje de una CPU.
- iowait. mínimo/avg/max delay time esperando el disco IO.
- poda. recuento min/avg/max de procesos en un estado ejecutable (igual que el promedio de carga).
- pblock. recuento mínimo/promedio/máximo de procesos bloqueados en la E/S de disco.
- pstart. número de procesos/subprocesos iniciados en este resumen intervalo.
Aún del resultado anterior, para un proceso dado, las diferentes columnas significan:
- nombre. proceso común nombre de/proc/pid/stat o/proc/pid/cmdline.
- pid. ID de proceso, también denominado como “tgid”.
- min. muestra más baja de tiempo de usuario + sistema para el pid, medido desde/proc/pid/stat. La escala es un porcentaje de una CPU.
- max. muestra más alta de tiempo de usuario + sistema para este pid, también medido desde/proc/pid/stat.
- usr. tiempo promedio del usuario para el pid durante el período de resumen, medido desde/proc/pid/stat.
- sys. tiempo promedio del sistema para el pid durante el período de resumen, medido desde/proc/pid/stat.
- nice. indica el valor actual “agradable” para el proceso, medido desde/proc/pid/stat. Más alto significa “mejor”.
- runq. tiempo en el que el proceso y todos sus subprocesos se gastan en ejecución pero a la espera de ejecutarse, medido desde las estadísticas de tareas a través de netlink. La escala es un porcentaje de una CPU.
- iow. tiempo del proceso y todos sus subprocesos bloqueados por E/S de disco, medidos desde las estadísticas de tareas a través de netlink. La escala es un porcentaje de una CPU, promediado durante el intervalo de resumen.
- intercambio. tiempo el proceso y todos sus subprocesos gastados esperando ser intercambiados, medido desde las estadísticas de tareas a través de netlink . La escala es un porcentaje de una CPU, promediado durante el intervalo de resumen.
- vcx e icx. número total de cambios de contexto voluntarios por el proceso y todos sus subprocesos durante el intervalo de resumen, medido a partir de las estadísticas de tareas a través de netlink.
- rss. valor RSS actual obtenido de/proc/pid/stat. Es la cantidad de memoria que está usando este proceso.
- ctime. suma del tiempo de CPU del usuario + sistema consumido por los niños esperados que salieron durante este intervalo de resumen, medido desde/proc/pid/stat.
Tenga en cuenta que los procesos secundarios de ejecución prolongada a menudo pueden confundir esta medida, porque el tiempo se informa solo cuando el proceso secundario sale. Sin embargo, esto es útil para medir el impacto de trabajos cron frecuentes y verificaciones de estado donde el tiempo de la CPU a menudo es consumido por muchos procesos secundarios.
- thrd. número de subprocesos al final del intervalo de resumen, medido desde/proc/pid/stat.
- sam. número de muestras para este proceso incluidas en el intervalo de resumen. Los procesos que se han iniciado o finalizado recientemente pueden haber sido visibles para menos muestras que el intervalo de resumen.
El siguiente comando muestra los 10 procesos de usuario raíz principales que se ejecutan en el sistema:
$ sudo $ GOBIN/cpustat-u root
Buscar procesos de ejecución de usuario raíz
Para mostrar la salida en un modo de terminal elegante, use la marca-t de la siguiente manera:
$ sudo $ GOBIN/cpustat-u roo-t
Uso de procesos en ejecución del usuario raíz
Para ver el número x superior de procesos (el valor predeterminado es 10), puede usar la marca-n, el siguiente comando muestra los 20 procesos principales de Linux que se ejecutan en el system:
$ sudo $ GOBIN/cpustat-n 20
También puede escribir el perfil de la CPU en un archivo usando la opción-cpuprofile de la siguiente manera y luego usar el comando cat para ver el archivo:
$ sudo $ GOBIN/cpustat-cpuprofile cpuprof.txt $ cat cpuprof.txt
Para mostrar la información de ayuda, use el indicador-h de la siguiente manera:
$ sudo $ GOBIN/cpustat-h
Encuentre información adicional de el repositorio de cpustat Github: https://github.com/uber-common/cpustat
¡Eso es todo! En este artículo, le mostramos cómo instalar y usar cpustat, una herramienta útil para medir el rendimiento del sistema para Linux. Comparta sus pensamientos con nosotros a través de la sección de comentarios a continuación.