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://myfirstwebsite5000. - 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://buggyamb5001.
- 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
- 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.
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.
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.
Al presionar Entrar, verá los procesos que ejecuta el usuario determinado (el usuario de www-data en este ejemplo).
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.
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.
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 ).
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.
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.
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.
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.
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".
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.