¿Cómo puedo supervisar el uso de recursos de Lightsail desde la línea de comandos?

Última actualización: 29 de octubre de 2021

Mi sitio web o aplicación alojada en Amazon Lightsail no funciona o funciona muy lentamente. ¿Cómo puedo monitorear el uso de los recursos de Lightsail desde la línea de comandos para poder solucionar estos problemas?

Descripción corta

Hay varios factores, incluyendo el uso elevado de recursos, que afectan a los servicios que se ejecutan en las instancias de Lightsail. Utilizando herramientas comunes puedes monitorear recursos como la CPU, la memoria, la E/S del disco y el uso de la red en las instancias de Lightsail en tiempo real desde la línea de comandos.

El análisis y monitoreo del uso de los recursos de instancias de Lightsail desde la línea de comandos proporciona una visión del sistema en tiempo real. Esto también permite una visión pormenorizada de los procesos que están utilizando la mayor parte de la CPU, la memoria, la E/S del disco o la red.

Los siguientes son los recursos que puede utilizar para analizar y monitorear los recursos de instancias de Lightsail desde la línea de comandos:

  • La herramienta attop
  • La herramienta htop
  • Los comandos iostat, vmstat y mpstat

Resolución

La herramienta attop

La herramienta atop informa de la actividad de todos los procesos, incluso si éstos han finalizado durante el intervalo especificado. Esta herramienta registra continuamente toda la información relevante del sistema. Gracias a este registro continuo, si los problemas se repiten, tendrá datos históricos que analizar. La herramienta atop está incluida en los repositorios oficiales de la mayoría de las distribuciones de Linux. Instale la herramienta atop ejecutando los siguientes comandos:

Sistemas basados en Red Hat

$ sudo yum install atop

Sistemas basados en Debian

$ sudo apt install atop

La herramienta attop registra toda la actividad en intervalos de 600 segundos de forma predeterminada. Para cambiar la configuración de la herramienta atop de modo que las actividades se registren en intervalos de 60 segundos, ejecute el siguiente comando:

Sistemas basados en Red Hat

$sudo sed 's/600/60/' /etc/atop/atop.daily -i

Sistemas basados en Debian

$ sudo sed 's/600/60/' /etc/default/atop -i

Después de ejecutar el comando anterior, atop registra todas las actividades dentro de los 60 segundos internamente. Los datos se almacenan en archivos de registro en /var/log/atop. Estos archivos se denominan con el siguiente formato: “atop_ccyymmdd”. Por ejemplo, atop_20210902 corresponde al registro del 2 de septiembre de 2021.

Para acceder al archivo de registros, ejecute el comando atop -r atologfilepath. El comando y el archivo de registros aparecen en el siguiente ejemplo:

atop -r /var/log/atop/atop_20210902 

ATOP - ip-172-20-139-91                2021/09/02  17:03:44                ----------------                 3h33m7s elapsed
PRC |  sys    6.51s  |  user   7.85s  |  #proc    103  |  #tslpi    81 |  #tslpu     0  |  #zombie    0  |  #exit      0  |
CPU |  sys     0%  |  user      3%  |  irq       0%  |  idle    197% |  wait      0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu000 w  0%  |  ipc notavail  |  curscal   ?%  |
cpu |  sys     0%  |  user      1%  |  irq       0%  |  idle     98% |  cpu001 w  0%  |  ipc notavail  |  curscal   ?%  |

En el ejemplo de salida anterior, la primera instantánea registrada tuvo lugar el 2021/09/02 17:03:44. Para avanzar a la siguiente instantánea, pulse la tecla “ t” del teclado. Para volver a la instantánea anterior, pulse la tecla “T” (“t” mayúscula).

Las siguientes son opciones de uso común con las que puedes iniciar atop:

Ordenar por memoria

$ atop -m

Ordenar por detalles del disco

$ atop -d

Ordenar por detalles de red

$ atop -n

La herramienta htop

La herramienta htop es una aplicación de monitoreo de procesos interactiva y en tiempo real para Linux que muestra su uso por CPU o núcleo. Esta herramienta también proporciona un gráfico de texto significativo de la memoria y el uso del intercambio.

Ejecute los siguientes comandos para instalar htop:

Sistemas basados en Red Hat

$ sudo yum install htop

Sistemas basados en Debian y Ubuntu

$ sudo apt install htop

Utilice el siguiente comando para ejecutar htop en su sistema:

$ htop

La herramienta htop enumera todos los procesos que se están ejecutando en el sistema e incluye información sobre la cantidad de CPU y memoria que utiliza cada proceso. También se incluye el comando utilizado para iniciar el proceso.

A continuación se definen cada una de las columnas de la salida:

  • PID: número de ID del proceso.
  • BUSER: propietario del proceso.
  • PR: prioridad del proceso. Cuanto menor sea el número, mayor será la prioridad.
  • NI: valor óptimo del proceso, que afecta a su prioridad.
  • VIRT: cuánta memoria virtual está utilizando el proceso.
  • RES: cuánta memoria RAM física está utilizando el proceso, medida en kilobytes.
  • SHR: cuánta memoria compartida está utilizando el proceso.
  • S: estado actual del proceso (en suspensión, dormido, en ejecución, en suspensión ininterrumpida o rastreado).
  • CPU: porcentaje del tiempo de procesador utilizado por el proceso.
  • MEM: porcentaje de RAM física utilizada por el proceso.
  • TIME+: cuánto tiempo de procesador ha utilizado el proceso.
  • COMMAND: nombre del comando que inició el proceso.

Los comandos iostat, vmstat y mpstat

Los comandos iostat, vmstat y mpstat forman parte del paquete sysstat. Utilice los siguientes comandos para instalar este conjunto de herramientas en la instancia de Lightsail:

Sistemas basados en Red Hat, como Amazon Linux, CentOS o RHEL

$ sudo yum install sysstat

Debian y Ubuntu

$ sudo apt-get install sysstat

Utilice los siguientes comandos para iniciar y habilitar sysstat para la recopilación continua de datos:

$ sudo systemctl start sysstat
$ sudo systemctl enable sysstat

comando 'iostat'

El comando iostat recopila y muestra las estadísticas de los dispositivos de almacenamiento de entrada y salida del sistema. Esta herramienta se utiliza a menudo para rastrear los problemas de rendimiento de los dispositivos de almacenamiento, incluidos los dispositivos y los discos. Las siguientes son opciones comunes de iostatos:

  • iostat: obtiene informes y estadísticas.
  • iostat -x: muestra información estadística más detallada.
  • iostat -c: muestra solo la estadística de la CPU.
  • iostat -d: muestra solo el informe del dispositivo.
  • iostat -xd: muestra estadísticas de E/S ampliadas únicamente para el dispositivo.

El siguiente es un ejemplo de salida del comando iostat:

$ iostat
Linux 4.14.246-187.474.amzn2.x86_64     10/22/2021     _x86_64_    (1 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           5.34    0.00    1.36    1.06    1.67   90.58

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
xvda             41.64      1496.90       890.16     502148     298612

comando 'vmstat'

El comando vmstat (estadísticas de memoria virtual) recopila y muestra información sobre la memoria del sistema, los procesos, las interrupciones, la paginación y la E/S en bloques. El comando vmstat permite especificar un intervalo de muestreo que permite observar la actividad del sistema casi en tiempo real. A continuación se muestra un ejemplo del comando vmstat y la salida:

$ vmstat 2 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
3 0 0 1409320 2088 485404 0 0 568 724 232 393 4 2 93 1 1
0 0 0 1409332 2088 485404 0 0 0 67 146 261 0 0 100 0 0
0 0 0 1408916 2088 485404 0 0 0 0 157 276 0 0 100 0 0
0 0 0 1408980 2088 485408 0 0 0 0 161 259 0 0 100 0 0
0 0 0 1408984 2088 485408 0 0 0 0 105 190 0 0 100 0 0

Las siguientes son opciones de uso común que se pueden utilizar con el comando vmstat:

La opción -a muestra la memoria activa e inactiva del sistema:

$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
2 0 0 1402016 311232 218864 0 0 60 77 74 129 0 0 99 0 0

La opción -d informa de las estadísticas del disco:

$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
nvme0n1 7728 25 433681 4544 3133 93 555950 4196 0 1
comando 'mpstat'

El comando mpstat recopila y muestra estadísticas de rendimiento de todos los procesadores lógicos del sistema. La ejecución del comando mpstat sin opciones genera un único informe que contiene las estadísticas de rendimiento de todos los procesadores lógicos desde el arranque.

$ mpstat 
Linux 4.18.0-305.el8.x86_64 (ip-xxx-xx-x-xx.ec2.internal)     10/27/2021     _x86_64_    (2 CPU)

04:23:26 PM  CPU    %usr   %nice    %sys  %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
04:23:26 PM  all    8.42    0.13    2.43    1.49     0.18    0.05    0.22    0.00    0.00   87.08

La primera línea del ejemplo anterior es un conjunto de etiquetas de columna. La segunda línea es el valor de cada columna:

  • %usr: % de uso de CPU a nivel de usuario.
  • %nice: % uso de CPU para procesos de usuario etiquetados como “óptimo”.
  • %sys: % uso de CPU a nivel del sistema (kernel de Linux).
  • %iowait: % de uso de CPU inactivo en espera de lectura/escritura de disco.
  • %irq: % de uso de la CPU a cargo de las interrupciones de hardware.
  • %soft: % de uso de la CPU a cargo de las interrupciones de software.
  • %steal: % de uso de la CPU forzado a esperar por un hipervisor que maneja otros procesadores virtuales.
  • %guest: % de uso de CPU invertido en ejecutar un procesador virtual.
  • idle: % uso de CPU en tiempo de inactividad (sin procesos y sin esperar a que el disco sea de lectura/escritura).

Utilizando las herramientas de línea de comandos anteriores, puede identificar los procesos con un uso elevado de recursos. Además, puede utilizar esta información para elegir instancias con recursos suficientes para su carga de trabajo.


¿Le resultó útil este artículo?


¿Necesita asistencia técnica o con la facturación?