Detectar cuellos de botella con el comando sysdig

Detectar cuellos de botella con el comando sysdig, en tu sistema linux.

El comando sysdig, es una herramienta que te ayuda a resolver problemas del sistema, mediante análisis y exploración. Se usa para capturar, filtrar y decodificar llamadas al sistema y otros eventos.

Sysdig es útil tanto para inspeccionar sistemas activos, como para generar registros de seguimiento que puedes analizar posteriormente. Se incluye un potente lenguaje de filtrado, con el cual puedes personalizar la salida o incluirlo en un script.

En este artículo nos centraremos en como detectar cuellos de botella en nuestro sistema. Sí, hablamos de esos momentos puntuales en los que nuestro sistema se queda medio muerto, normalmente debido a los excesivos procesos que intentan ejecutarse al mismo tiempo.

Detectar cuellos de botella

Detectar cuellos de botella

 

Detectar cuellos de botella con el comando sysdig

Esta herramienta no viene instalada por defecto en ninguna distribución linux (salvo contadas excepciones). Procedemos a su instalación, pero antes quiero avisarte que puede generar problema en sistemas que no tengan instalado apt o yum.

Vamos a instalar sysdig (como usuario root, o con permisos).

sudo su

curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash

Ejemplo…

root@sololinux:# curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | bash
* Detecting operating system
* Installing Sysdig public key
OK
* Installing sysdig repository
* Installing kernel headers
* Installing sysdig
Seleccionando el paquete sysdig previamente no seleccionado.
(Leyendo la base de datos ... 343182 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../sysdig_0.27.1_amd64.deb ...
Desempaquetando sysdig (0.27.1) ...
Configurando sysdig (0.27.1) ...
Loading new sysdig-0.27.1 DKMS files...
Building for 5.4.0-66-generic
Building initial module for 5.4.0-66-generic
Secure Boot not enabled on this system.
Done.

sysdig-probe:
Running module version sanity check.
 - Original module
   - No original module exists within this kernel
 - Installation
   - Installing to /lib/modules/5.4.0-66-generic/kernel/extra/

depmod....

DKMS: install completed.
Procesando disparadores para man-db (2.8.3-2ubuntu0.1) ...

 

Al ejecutar el comando en su formato simple, nos aparece un sinfín de todo lo que sucede en nuestro sistema. No lo recomiendo, pero puedes probar.

sudo sysdig

Observa el interminable ejemplo…

Ejecutar sysdig en linux

Ejecutar sysdig en linux

 

Este comando nos ofrece muchas opciones, pero hoy nos centramos en los cuellos de botella o mejor… los llamamos «bottlenecks». Lo puedes ejecutar con este comando.

sudo su

sysdig -c bottlenecks

Ahora espera unos segundos, por ejemplo 30 o 60 y pulsas la tecla Ctrl + c. Veras un resultado similar a…

root@sololinux:~# sysdig -c bottlenecks
^C231237) 0.000000000 ThreadPoolServi (3624) > epoll_wait maxevents=32 
1840514) 60.060168752 ThreadPoolServi (3624) < epoll_wait res=0 
117710) 0.000000000 cron (666) > nanosleep interval=60000000000(60s) 
1633954) 60.000624799 cron (666) < nanosleep res=0 
41833) 0.000000000 Chrome_ChildIOT (3180) > epoll_wait maxevents=32 
1055508) 45.263730434 Chrome_ChildIOT (3180) < epoll_wait res=1 
41906) 0.000000000 chromium-browse (3177) > futex addr=7FFE71E98838 op=128(FUTEX_PRIVATE_FLAG) val=0 
1055521) 45.262984064 chromium-browse (3177) < futex res=0 
286745) 0.000000000 ThreadPoolSingl (3030) > futex addr=7F7D8BFFE8E8 op=128(FUTEX_PRIVATE_FLAG) val=0 
1409717) 43.552938505 ThreadPoolSingl (3030) < futex res=0 
320210) 0.000000000 xfce4-terminal (13082) > poll fds=4:e1 5:u1 7:u1 11:u3 12:f3 timeout=4294967295 
1335686) 37.343041500 xfce4-terminal (13082) < poll res=1 fds=5:u1 
611836) 0.000000000 ThreadPoolForeg (13007) > futex addr=7F838B73D908 op=128(FUTEX_PRIVATE_FLAG) val=0 
1545240) 33.001265102 ThreadPoolForeg (13007) < futex res=-110(ETIMEDOUT) 
1030559) 0.000000000 ThreadPoolForeg (12865) > futex addr=7F838F7FD908 op=128(FUTEX_PRIVATE_FLAG) val=0 
2023659) 33.000756708 ThreadPoolForeg (12865) < futex res=-110(ETIMEDOUT) 
973047) 0.000000000 ThreadPoolForeg (9116) > futex addr=7F83B51DC908 op=128(FUTEX_PRIVATE_FLAG) val=0 
1951436) 33.000576390 ThreadPoolForeg (9116) < futex res=-110(ETIMEDOUT) 
239425) 0.000000000 ThreadPoolForeg (12865) > futex addr=7F838F7FD908 op=128(FUTEX_PRIVATE_FLAG) val=0 
1030556) 33.000458604 ThreadPoolForeg (12865) < futex res=-110(ETIMEDOUT)

Presta atención a las columnas 2, 3 y 4.

  • Columna 2 : Tiempo de ejecución.
  • Columna 3 : Proceso.
  • Columna 4 : PID del proceso.

Detectar cuellos de botella con el comando sysdig

 

Bien, una vez identificado el proceso que nos provoca el cuello de botella, es tan sencillo como matarlo con el comando kill. Si no recuerdas como, o simplemente no estás seguro de como operar, puedes revisar este anterior articulo.

Detectar cuellos de botella con sysdig

Detectar cuellos de botella con sysdig

 

Canales de Telegram: Canal SoloLinux – Canal SoloWordpress

Espero que este artículo te sea de utilidad, puedes ayudarnos a mantener el servidor con una donación (paypal), o también colaborar con el simple gesto de compartir nuestros artículos en tu sitio web, blog, foro o redes sociales. Detectar cuellos de botella con el comando sysdig.

Chat de SoloLinux en Telegram

 

Agregar comentario

1 logo sololinux

Suscríbete a SoloLinux

Recibe todos los nuevos artículos es tu correo electrónico

You have Successfully Subscribed!

Ir al contenido