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

Se aplica a:   .NET Core 2.1, .NET Core 3.1, .NET 5

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

Requisitos previos

Al igual que en las partes anteriores,esta parte está estructurada para poner más énfasis en la teoría y las entidades de seguridad a seguir cuando empiece a solucionar problemas. No tiene requisitos previos. Sin embargo, debes tener los siguientes elementos ya configurados si has seguido todos los pasos de este aprendizaje hasta ahora:

  • Nginx tiene dos sitios web:
    • El primer sitio web escucha las solicitudes mediante el encabezado de host myfirstwebsite ( ) y enruta las solicitudes ASP.NET Core la aplicación de demostración que escucha en el puerto http://myfirstwebsite 5000.
    • El segundo sitio web escucha las solicitudes mediante el encabezado host buggyamb ( ) y enruta las solicitudes ASP.NET Core la segunda aplicación de ejemplo de errores que escucha en el puerto http://buggyamb 5001.
  • Ambas ASP.NET Core se ejecutan como servicios que se reinician automáticamente cuando se reinicia el servidor o las aplicaciones deja de responder o se produce un error.
  • 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 deba supervisar el uso de cpu y memoria de un proceso para comprender cómo evoluciona su consumo de recursos con el 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 para supervisar los htop procesos.

top

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 alto uso de CPU y que el uso de memoria también es alto.

Seleccionar y anular la selección de columnas

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

Captura de pantalla de información de columnas.

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

Filtrar el resultado por usuarios

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

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

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

Captura de pantalla de la información del usuario.

Al inspeccionar el resultado de la vista filtrada, puede ver que dos de los procesos top son procesos .NET. Estos son los procesos que 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 comando, el resultado será el mismo que se obtiene si se abre la herramienta y se presiona U para filtrar top -u www-data top por usuario.

Quitar procesos inactivos

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

Captura de pantalla de quitar información.

Presione de nuevo I para alternar el conmutador y mostrar también los procesos inactivos.

Procesos de eliminación

Para eliminar o finalizar 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 matar un proceso. También puede matar procesos mediante top el uso de . Presione K para matar un proceso mientras se está ejecutando y, a continuación, escriba el PID del proceso top que desea matar.

Captura de pantalla del comando kill.

Después de presionar Entrar, top pregunta por el tipo de señal. Presione Entrar una vez más para enviar la señal de terminación ( 15/sigterm ).

Captura de pantalla del comando kill top.

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

htop

Htop es un visor de procesos y una aplicación de 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 están ejecutando.

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

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

Captura de pantalla del comando kill htop.

Nota

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

Captura de pantalla del uso de memoria.

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

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

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

La diferencia en el resultado se produce porque htop muestra ambos 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, presione Mayús+H. La siguiente captura de pantalla muestra los procesos sin subprocesos.

Captura de pantalla de la información del proceso.

Si tiene que eliminar un proceso, seleccione el proceso con las teclas de flecha, presione F9 y, a continuación, presione ENTRAR para enviar la señal de "finalizar".

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

Esta introducción sucinta debería permitirle comprender qué procesos se ejecutan y consumen recursos en el sistema. Para htop salir, presione F10 o Ctrl+C.

Siguientes pasos

Parte 3.3: depuradores, volcados principales y recolección de volcados de núcleo

La siguiente parte de esta serie ("Prepararse para la solución de problemas") trata los depuradores y los archivos de volcado.