Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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.
- El primer sitio web escucha las solicitudes mediante el encabezado de host myfirstwebsite (
- 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 .
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.
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.
Al seleccionar Entrar, verá los procesos que ejecuta el usuario dado (el usuario www-data en este ejemplo).
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.
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.
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
).
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:
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.
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.
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.
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".
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.