GNU/Linux >> Tutoriales Linux >  >> Linux

Consejos para usar el comando superior en Linux

Tratar de averiguar qué se está ejecutando en su máquina, y qué proceso está utilizando toda su memoria y haciendo que las cosas sigan siendo más sencillas, es una tarea bien realizada por la utilidad top .

top es un programa extremadamente útil que actúa de manera similar al Administrador de tareas de Windows o al Monitor de actividad de MacOS. Ejecutando top en su máquina *nix le mostrará una vista en vivo y en ejecución del proceso que se ejecuta en su sistema.

$ top

Según la versión de top estás corriendo, obtendrás algo parecido a esto:

top - 08:31:32 up 1 day,  4:09,  0 users,  load average: 0.20, 0.12, 0.10
Tasks:   3 total,   1 running,   2 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.5 us,  0.3 sy,  0.0 ni, 99.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem:   4042284 total,  2523744 used,  1518540 free,   263776 buffers
KiB Swap:  1048572 total,        0 used,  1048572 free.  1804264 cached Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0   21964   3632   3124 S   0.0  0.1   0:00.23 bash
  193 root      20   0  123520  29636   8640 S   0.0  0.7   0:00.58 flask
  195 root      20   0   23608   2724   2400 R   0.0  0.1   0:00.21 top

Tu versión de top puede verse diferente a esto, particularmente en las columnas que se muestran.

Cómo leer la salida

Puede saber lo que está ejecutando en función de la salida, pero tratar de interpretar los resultados puede ser un poco confuso.

Las primeras líneas contienen un montón de estadísticas (los detalles) seguidas de una tabla con una lista de resultados (la lista). Comencemos con el último.

La lista

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Estos son los procesos que se ejecutan en el sistema. De forma predeterminada, están ordenados por uso de CPU en orden descendente. Esto significa que los elementos en la parte superior de la lista utilizan más recursos de CPU y causan más carga en su sistema. Son literalmente los procesos "principales" por uso de recursos. Tienes que admitir que es un nombre inteligente.

El COMMAND La columna en el extremo derecho informa el nombre del proceso (el comando que ejecutó para iniciarlo). En este ejemplo, son bash (un intérprete de comandos que estamos ejecutando top en), flask (un micro-framework web escrito en Python) y top mismo.

Las otras columnas proporcionan información útil sobre los procesos:

  • PID :el id del proceso , un identificador único para abordar los procesos
  • USER :el usuario que ejecuta el proceso
  • PR :la prioridad de la tarea
  • NI :una mejor representación de la prioridad
  • VIRT :tamaño de la memoria virtual en KiB (kibibytes)*
  • RES :tamaño de la memoria residente en KiB* (la "memoria física" y un subconjunto de VIRT)
  • SHR :tamaño de memoria compartida en KiB* (la "memoria compartida" y un subconjunto de VIRT)
  • S :estado del proceso, normalmente I =inactivo, R =corriendo, S =dormir, Z =zombi, T o t =detenido (también hay otras opciones menos comunes)
  • %CPU :Porcentaje de uso de CPU desde la última actualización de pantalla
  • %MEM :porcentaje de RES uso de memoria desde la última actualización de pantalla
  • TIME+ :tiempo total de CPU utilizado desde que comenzó el proceso
  • COMMAND :el comando, como se describe arriba

*Saber exactamente qué es el VIRT , RES y SHR los valores representan no realmente materia en las operaciones diarias. Lo importante es saber que el proceso con más VIRT es el proceso que usa más memoria. Si estás en top porque está depurando por qué su computadora se siente como si estuviera en un charco de melaza, el proceso con el mayor VIRT número es el culpable. Si desea saber exactamente qué significa memoria "compartida" y "física", consulte "Tipos de memoria de Linux" en el manual superior.

Y, sí, quise escribir kibi bytes, no kilo bytes El valor de 1024 que normalmente llama un kilobyte es en realidad un kibibyte. El kilo griego ("χίλιοι") significa mil y significa 1000 de algo (p. ej., un kilómetro son mil metros, un kilogramo son mil gramos). Kibi es un acrónimo de kilo y byte , y significa 1024 bytes (o 2). Pero, como las palabras son difíciles de pronunciar, muchas personas dicen kilobyte cuando significan 1.024 bytes. Todo esto significa que es top está tratando de usar los términos apropiados aquí, así que simplemente hazlo. #quemassabes?.

Una nota sobre las actualizaciones de pantalla:

Las actualizaciones de pantalla en vivo son una de las cosas objetivamente realmente interesantes Los programas de Linux pueden hacer. Esto significa que pueden actualizar su propia pantalla en tiempo real, para que aparezcan animadas. A pesar de que están usando texto. ¡Muy guay! En nuestro caso, el tiempo entre actualizaciones es importante, porque algunas de nuestras estadísticas (%CPU y %MEM ) se basan en el valor desde la última actualización de la pantalla.

Y debido a que estamos ejecutando una aplicación persistente, podemos presionar comandos clave para realizar cambios en vivo en los ajustes o configuraciones (en lugar de, por ejemplo, cerrar la aplicación y ejecutarla nuevamente con un indicador de línea de comando diferente).

Escribiendo h invoca la pantalla de "ayuda", que también muestra el retraso predeterminado (el tiempo entre actualizaciones de pantalla). De forma predeterminada, este valor es (alrededor de) tres segundos, pero puede cambiarlo escribiendo d (presumiblemente por "retraso") o s (probablemente para "pantalla" o "segundos").

Los detalles

Encima de la lista de procesos, hay un montón de otra información útil. Algunos de estos detalles pueden parecer extraños y confusos, pero una vez que te tomes un tiempo para revisar cada uno de ellos, verás que son estadísticas muy útiles para encontrar en un apuro.

La primera fila contiene información general del sistema

  • top :estamos ejecutando top ! Hola top !
  • XX:YY:XX :la hora, actualizada cada vez que se actualiza la pantalla
  • top (luego X day, YY:ZZ ):el tiempo de actividad del sistema, o cuánto tiempo ha pasado desde que se encendió el sistema
  • load average (luego tres números):la carga del sistema durante los últimos uno, cinco y 15 minutos, respectivamente

La segunda fila (Tasks ) muestra información sobre las tareas en ejecución y se explica por sí mismo. Muestra el número total de procesos y el número de procesos en ejecución, inactivos, detenidos y zombis. Esto es literalmente una suma de S (estado ) columna descrita anteriormente.

La tercera fila (%Cpu(s) ) muestra el uso de la CPU separado por tipos. Los datos son los valores entre actualizaciones de pantalla. Los valores son:

  • us :procesos de usuario
  • sy :procesos del sistema
  • ni :buenos procesos de usuario
  • id :el tiempo de inactividad de la CPU; un tiempo de inactividad elevado significa que, de lo contrario, no sucederán muchas cosas
  • wa :tiempo de espera o tiempo de espera para que se complete la E/S
  • hi :tiempo empleado en esperar interrupciones de hardware
  • si :tiempo de espera de interrupciones de software
  • st :"tiempo robado de esta máquina virtual por el hipervisor"

Puede colapsar las Tasks y %Cpu(s) filas escribiendo t (para "alternar").

El cuarto (KiB Mem ) y quintas filas (KiB Swap ) proporcionan información para la memoria y el intercambio. Estos valores son:

  • total
  • used
  • free

Pero también:

  • memoria buffers
  • intercambiar cached Mem

Por defecto, están listados en KiB, pero presionando E (para "ampliar el escalado de la memoria") recorre diferentes valores:kibibytes, mebibytes, gibibytes, tebibytes, pebibytes y exbibytes. (Es decir, kilobytes, megabytes, gigabytes, terabytes, petabytes y exabytes, pero sus "nombres reales".)

El top El manual del usuario muestra aún más información sobre banderas y configuraciones útiles. Para encontrar el manual en su sistema, puede ejecutar man top . Hay varios sitios web que muestran una representación HTML del manual, pero tenga en cuenta que estos pueden ser para una versión diferente de top .

Dos alternativas principales

No siempre tienes que usar top para entender lo que está pasando. Dependiendo de sus circunstancias, otras herramientas pueden ayudarlo a diagnosticar problemas, especialmente cuando desea una interfaz más gráfica o especializada.

htop

top se parece mucho a top , pero trae algo extremadamente útil a la mesa:una representación gráfica del uso de CPU y memoria.

Así es el entorno que examinamos en top busca en htop . La pantalla es mucho más simple, pero aún rica en funciones.

Nuestros recuentos de tareas, carga, tiempo de actividad y la lista de procesos aún están allí, pero obtenemos una vista ingeniosa, coloreada y animada del uso de la CPU por núcleo y un gráfico de uso de memoria.

Esto es lo que significan los diferentes colores (también puedes obtener esta información presionando h para "ayuda").

Prioridades o tipos de tareas de la CPU:

  • azul:baja prioridad
  • verde:prioridad normal
  • rojo:tareas del núcleo
  • azul:tareas virtualizadas
  • el valor al final de la barra es el porcentaje de CPU utilizada

Memoria:

  • verde:memoria usada
  • azul:memoria intermedia
  • amarillo:memoria caché
  • los valores al final de la barra muestran la memoria utilizada y total

Si los colores no le resultan útiles, puede ejecutar htop -C para deshabilitarlos; en lugar de htop utilizará diferentes símbolos para separar los tipos de CPU y memoria.

En la parte inferior, hay una pantalla útil de teclas de función activas que puede usar para hacer cosas como filtrar resultados o cambiar el orden de clasificación. Pruebe algunos de los comandos para ver lo que hacen. Solo tenga cuidado al probar F9 . Esto mostrará una lista de señales que eliminarán (es decir, detendrán) un proceso. Sugeriría explorar estas opciones fuera de un entorno de producción.

El autor de htop , Hisham Muhammad (y sí, se llama htop después de Hisham) presentó una charla relámpago sobre htop en FOSDEM 2018 en febrero. Explicó cómo htop no solo tiene gráficos limpios, sino que también muestra información estadística más moderna sobre procesos que las utilidades de monitoreo más antiguas (como top ) no.

Puedes leer más sobre htop en la página del manual o en el sitio web de htop. (Advertencia:el sitio web contiene un fondo animado de htop .)

estadísticas de la ventana acoplable

Si está trabajando con Docker, puede ejecutar docker stats para generar una representación rica en contexto de lo que están haciendo sus contenedores.

Esto puede ser más útil que top porque, en lugar de separar por procesos, estás separando por contenedor. Esto es especialmente útil cuando un contenedor es lento, ya que ver qué contenedor usa la mayoría de los recursos es más rápido que ejecutar top y tratando de mapear el proceso al contenedor.

Las explicaciones anteriores de acrónimos y descriptores en top y htop debería facilitar la comprensión de los que están en docker stats . Sin embargo, la documentación de estadísticas de Docker proporciona descripciones útiles de cada columna.


Linux
  1. Consejos de Linux para usar cron para programar tareas

  2. 7 trucos útiles para usar el comando wget de Linux

  3. Una guía de la terminal de Linux para principiantes

  4. Usando la fuerza en la línea de comando de Linux

  5. Mis 10 mejores atajos de terminal para Linux

Trucos de formato para el comando de fecha de Linux

El comando superior de Linux

Tutorial sobre el uso del comando Timeout en Linux

Tutorial sobre el uso del último comando en la terminal de Linux

Una guía práctica para el comando chroot en Linux

Comando superior de Linux