Compartir a través de


Parte 3.2: administradores de tareas de Linux, arriba y htop

Se aplica a: .NET en Linux

En este artículo se presenta cómo usar top y htop las herramientas de línea de comandos para supervisar los procesos.

Requisitos previos

Como en las partes anteriores, esta parte está estructurada para poner más énfasis en la teoría y las entidades de seguridad que se deben seguir al empezar a solucionar problemas. No tiene ningún requisito previo. Sin embargo, debe tener los siguientes elementos ya configurados si ha seguido todos los pasos de este entrenamiento hasta ahora:

  • Nginx tiene dos sitios web:
    • El primer sitio web escucha las solicitudes mediante el encabezado de host myfirstwebsite (http://myfirstwebsite) y enruta las solicitudes a la aplicación de demostración ASP.NET Core que escucha en el puerto 5000.
    • El segundo sitio web escucha las solicitudes mediante el encabezado de host buggyamb (http://buggyamb) y enruta las solicitudes a la segunda aplicación de buggy de ejemplo de ASP.NET Core que escucha en el puerto 5001.
  • Ambas aplicaciones ASP.NET Core se ejecutan como servicios que se reinician automáticamente cuando se reinicia el servidor o las aplicaciones dejan de responder o se producen errores.
  • Un firewall local de Linux está habilitado y configurado para permitir el tráfico SSH y HTTP.

Objetivo de esta parte

Al solucionar un problema de rendimiento, es posible que tenga que supervisar el uso de cpu y memoria de un proceso para comprender cómo evoluciona su consumo de recursos a lo largo del tiempo. En Windows, puede usar el Administrador de tareas para hacerlo. Linux tiene varias herramientas que tienen como objetivo lograr lo mismo.

Esta parte examinará las herramientas de top línea de comandos y htop para supervisar los procesos.

superior

Para abrir el equivalente del Administrador de tareas en Linux, ejecute el top comando .

Captura de pantalla del comando superior.

En este ejemplo, puede observar en el primer proceso enumerado para PID 19933 que el proceso muestra un uso elevado de CPU y el uso de memoria también es alto.

Selección y anule la selección de columnas

Para agregar o quitar columnas en la vista que proporciona la top herramienta, seleccione F mientras ejecuta la herramienta. Las columnas marcadas por un asterisco (*) son las que se seleccionan para mostrar. Use las teclas de dirección para desplazarse por las columnas disponibles y use la barra espaciadora para seleccionar o anular la selección de las columnas. A continuación, seleccione Esc para salir.

Captura de pantalla de la información de columnas.

Los cambios se guardarán para la cuenta de usuario. La próxima vez que ejecute top, verá las columnas que seleccionó.

Filtrar la salida por los usuarios

Para poder dirigirse a escenarios problemáticos de consumo de recursos, es importante saber cómo filtrar la top salida. Uno de los métodos más comunes es filtrar los procesos por nombre de usuario. Puede seleccionar U y, a continuación, escribir el nombre de usuario. En la captura de pantalla siguiente se muestra la top herramienta que filtra las instantáneas de proceso disponibles para el usuario www-data.

Captura de pantalla de la información de los usuarios.

Al seleccionar Entrar, verá los procesos que ejecuta el usuario dado (el usuario www-data en este ejemplo).

Captura de pantalla de la información del usuario.

Al inspeccionar la salida de la vista filtrada top , puede ver que dos de los procesos son procesos de .NET. Estos dos procesos ejecutan las dos aplicaciones ASP.NET Core, mientras que los otros dos procesos pertenecen a Nginx.

Puede usar filtros al ejecutar el top comando directamente. Por ejemplo, si ejecuta el top -u www-data comando, producirá la misma salida que obtendría si tuviera que abrir la top herramienta y seleccionar U para filtrar por el usuario.

Eliminación de procesos inactivos

Seleccione I o ejecute el top -i comando para filtrar la top salida para mostrar solo los procesos que consumen CPU. En la captura de pantalla siguiente se muestra la salida del top -i -u www-data comando. Observe que la top salida oculta los procesos inactivos aunque haya cuatro procesos que se iniciaron mediante la cuenta de usuario www-data. Solo el proceso que tiene PID=19933 consume CPU.

Captura de pantalla de la eliminación de información.

Seleccione I de nuevo para alternar el modificador y mostrar también los procesos inactivos.

Eliminación de procesos

Para terminar o terminar un proceso, debe enviar una señal de eliminación al proceso. Es posible que recuerde que hemos usado el sudo kill -9 <PID> comando anteriormente para eliminar un proceso. También puede eliminar procesos mediante top. Seleccione K para eliminar un proceso mientras top se está ejecutando y, a continuación, escriba el PID del proceso que desea eliminar.

Captura de pantalla del comando kill.

Después de seleccionar Entrar, top solicita el tipo de señal. Seleccione Entrar una vez más para enviar la señal "terminate" (15/sigterm).

Captura de pantalla del comando kill top.

Después de unos segundos, verá que falta el proceso de PID 122632 de la lista. Recuerde que en las listas, el proceso "122632" corresponde a la aplicación BuggyAmb ASP.NET Core. Dado que se configuró para iniciarse automáticamente, verá que se inicia un nuevo proceso de .NET que tiene un NUEVO PID después del apagado.

htop

Htop es un visor de procesos y una aplicación en modo de texto para la supervisión del sistema en tiempo real, similar a top. Es fácil de usar y muestra una lista completa de los procesos que se ejecutan.

La htop herramienta está preinstalada en la distribución de Ubuntu Linux que se usa para instalar el servidor virtual para este curso. Si htop no está instalado en la distribución de Linux, puede usar los administradores de paquetes en Linux para instalarlo. (Consulte Parte 1.3: Instalación de .NET en Linux para obtener más información).

Para iniciar la herramienta, ejecute el htop comando . Verá una salida colorida similar a la siguiente:

Captura de pantalla del comando kill htop.

Nota:

La línea inferior indica las claves de función que puede usar. Seleccione F6 para ordenar por diferentes opciones, use las teclas de dirección para seleccionar la PERCENT_MEM columna y, a continuación, seleccione Entrar. Esto ordena los procesos por uso de memoria.

Captura de pantalla del uso de memoria.

Al igual que con el top comando , puede usar métodos abreviados de teclado para varias funciones. Por ejemplo, seleccione U para seleccionar el nombre de usuario de una lista.

Captura de pantalla de la información del nombre de usuario.

Sin embargo, hay algo confuso en la htop salida. En función de la salida de los últimos ejemplos, debería esperar ver cuatro procesos para el usuario www-data. Sin embargo, vemos que hay muchas más entradas. ¿Qué podría estar causando este comportamiento?

La diferencia en la salida se produce porque htop muestra los procesos y sus subprocesos de forma predeterminada. A menos que quiera ver los subprocesos, se recomienda deshabilitar siempre la vista de subprocesos para que la salida sea más clara. Para deshabilitar la vista de subprocesos y ver solo los procesos, seleccione Mayús+H. En la captura de pantalla siguiente se muestran los procesos sin subprocesos.

Captura de pantalla de la información del proceso.

Si tiene que terminar un proceso, seleccione el proceso mediante las teclas de dirección, seleccione F9 y, a continuación, seleccione Entrar para enviar la señal "terminate".

Captura de pantalla de la información de finalización.

Esta introducción concisa debe permitirle comprender qué procesos se ejecutan y consumen recursos en el sistema. Para salirhtop, seleccione F10 o Ctrl+C.

Pasos siguientes

La siguiente parte de esta serie (parte 3.3: depuradores, volcados de memoria principales y recopilación de volcados de memoria principales) describe los depuradores y los archivos de volcado de memoria.