Administrar el uso del CPU en Linux puede ser un dolor de cabeza, en especial en un servidor Linux, sistema de CPU múltiples o sistema compartido. Sin embargo, existen varias herramientas que ayudan a lidiar con este problema.
La más conocidas sean tal vez Nagios y SAR, el programa de línea de comandos que muestra información básica sobre los procesos que se ejecutan en el equipo, pero hay tambièn tros programas que proporcionan información en distintos CPU y agregan datos de uso del CPU durante períodos prolongados.
Sin ánimo de ser exhaustivos presentamos una lista de las mejores herramientas para monitorear el rendimiento del CPU en Linux:
1.- SAR
Instalación:
SAR no es programa originario de Linux, necesitarás instalar un paquete llamado "sysstat":
Una vez que los hayas instalado, puedes utilizar mpstat para ver las estadísticas para múltiples unidades de procesamiento: la unidad que aparece como "0" figura de primera y las siguientes se enumeran después. Sar es un programa que realiza el seguimiento de utilización del CPU durante períodos prolongados de tiempo, dividiendo las estadísticas de uso entre los programas de usuario, programas de sistema y el tiempo de inactividad.
Uso de la utilidad SAR.
Puedes hacer dos cosas:
1) Monitor de rendimiento del sistema en tiempo real (CPU, memoria, E / S, etc)
2) Recoger datos de rendimiento en el fondo en una base en curso y hacer un análisis de los datos históricos para identificar cuellos de botella.
Sar es parte del paquete sysstat. Las siguientes son algunas de las cosas que puedes hacer con la utilidad sar.
Uso de la CPU colectiva
Estadísticas individuales del CPU
Memoria usada y disponible
El espacio de intercambio utilizado y disponible
Actividades de E/S del sistema en general
Actividades individuales de dispositivos de E/S
Estadísticas de cambio de contexto
Ejecutar cola y cargar los datos promedios
Estadísticas de red
Informe de datos SAR de un tiempo específico
y mucho más ..
El siguiente comando sar mostrará las estadísticas de la CPU del sistema 3 veces (con un intervalo de 1 segundo).
El siguiente comando "sar-b" informa de I/O estadísticas. "1 3" indica que el sar-b se ejecutará por cada 1 segundo para un total de 3 veces:
$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:56:28 PM tps rtps wtps bread/s bwrtn/s
01:56:29 PM 346.00 264.00 82.00 2208.00 768.00
01:56:30 PM 100.00 36.00 64.00 304.00 816.00
01:56:31 PM 282.83 32.32 250.51 258.59 2537.37
Average: 242.81 111.04 131.77 925.75 1369.90
2. - Tcpdump.
Tcpdump es un analizador de paquetes de red. Utilizando tcpdump puede capturar los paquetes y analizar para ver si existen cuellos de botella de rendimiento.
Tcpdump funciona en la mayoría de los sistemas operativos UNIX: Linux, Solaris, BSD, Mac OS X, HP-UX y AIX entre otros. En esos sistemas, tcpdump hace uso de la biblioteca libpcap para capturar los paquetes que circulan por la red. En UNIX y otros sistemas operativos, es necesario tener los privilegios del root para utilizar tcpdump.
El usuario puede aplicar varios filtros para que sea más depurada la salida. Un filtro es una expresión que va detrás de las opciones y que nos permite seleccionar los paquetes que estamos buscando. En ausencia de ésta, el tcpdump volcará todo el tráfico que vea el adaptador de red seleccionado.
El siguiente ejemplo muestra el comando tcpdump paquetes capturados en ASCII.
$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@....i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........
Utilizando tcpdump puede capturar paquetes basados en varias condiciones personalizadas. Por ejemplo, la captura de paquetes que fluyen a través de un puerto en particular, la captura de comunicación TCP entre dos hosts específicos, capturar los paquetes que pertenecen a un tipo de protocolo específico, etc.
3.- Nagios.
Las redes, cada vez más, soportanaplicaciones y servicios estratégicos de las organizaciones. Por lo cual el análisis ymonitoreo de redes se ha convertido en una labor cada vez mas importante y de carácterpro-activo para evitar problemas.
Nagios es una solución de código abierto de seguimiento que puede controlar casi cualquier cosa en su infraestructura de TI. Por ejemplo, cuando un servidor se cae, puede enviar una notificación a su equipo de administración de sistemas, cuando una base de datos se cae lo posible la página de su equipo de DBA, cuando el servidor web de una baja se puede notificar al equipo adecuado.
También puede ajustar el nivel de advertencia y crítico umbral para varios servicios para ayudarle a resolver el problema de manera proactiva. Por ejemplo, se puede notificar equipo sysadmin cuando una partición de disco se llena al 80%, lo que dará tiempo suficiente para que el administrador de sistemas pueda trabajar en la adición de más espacio antes de que el asunto se vuelve crítico.
Nagios también tiene una interfaz de usuario muy buena desde donde se puede controlar el estado de su infraestructura de TI en general.
Instalacion:
Que se puede hacer con Nagios:
Monitorización de servicios de red (SMTP, POP3, HTTP, NTTP, ICMP, SNMP).
Monitorización de los recursos de un host (carga del procesador, uso de los discos, logs del sistema) en varios sistemas operativos, incluso Microsoft Windows con el plugin NRPE_NT.
Monitorización remoto, a través de túneles SSL cifrados o SSH.
Diseño simple de plugins, que permiten a los usuarios desarrollar sus propios chequeos de servicios dependiendo de sus necesidades, usando sus herramientas preferidas (Bash, C++, Perl, Ruby, Python, PHP, C#, Java, etc.).
Chequeo de servicios paralizados.
Posibilidad de definir la jerarquía de la red, permitiendo distinguir entre host caídos y host inaccesibles.
4.- Iostat.
Iostat informa sobre CPU, disco I/O, y las estadísticas NFS. Los siguientes son algunos de los ejemplos de comandos iostat. Iostat sin ningún argumento muestra información sobre el uso de CPU y E/S de información sobre todas las particiones del sistema como se muestra a continuación.
Por defecto iostat muestra los datos de E / S para todos los discos disponibles en el sistema. Para ver las estadísticas de un dispositivo específico (por ejemplo, / dev / sda), utilice la opción-p, como se muestra a continuación.
$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011
avg-cpu: %user %nice %system %iowait %steal %idle
5.68 0.00 0.52 2.03 0.00 91.76
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 194.69 1096.51 1598.48 2719069928 3963829584
sda2 336.38 27.17 54.00 67365064 133905080
sda1 821.89 0.69 243.53 1720833 603892838
5.- Mpstat
mpstat reporta estadísticas de procesadores. Los siguientes son algunos de los ejemplos de comandos mpstat.
Opción-A muestra, toda la información que puede ser mostrada por el comando mpstat como se muestra a continuación. Esto es realmente equivalente a "mpstat-I ALL-u-P ALL" comando
$ mpstat –A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU)
10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99
10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98
10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98
10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:26:34 PM CPU intr/s
10:26:34 PM all 36.51
10:26:34 PM 0 0.00
10:26:34 PM 1 0.00
10:26:34 PM 2 0.04
10:26:34 PM 3 0.00
10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s
10:26:34 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.
mpstat Opción-P ALL, muestra todas las CPU individual (o núcleos), junto con sus estadísticas, como se muestra a continuación.
$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU)
10:28:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:28:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99
10:28:04 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98
10:28:04 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98
10:28:04 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:28:04 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
La más conocidas sean tal vez Nagios y SAR, el programa de línea de comandos que muestra información básica sobre los procesos que se ejecutan en el equipo, pero hay tambièn tros programas que proporcionan información en distintos CPU y agregan datos de uso del CPU durante períodos prolongados.
Sin ánimo de ser exhaustivos presentamos una lista de las mejores herramientas para monitorear el rendimiento del CPU en Linux:
1.- SAR
Instalación:
SAR no es programa originario de Linux, necesitarás instalar un paquete llamado "sysstat":
sudo apt-get install sysstat
Una vez que los hayas instalado, puedes utilizar mpstat para ver las estadísticas para múltiples unidades de procesamiento: la unidad que aparece como "0" figura de primera y las siguientes se enumeran después. Sar es un programa que realiza el seguimiento de utilización del CPU durante períodos prolongados de tiempo, dividiendo las estadísticas de uso entre los programas de usuario, programas de sistema y el tiempo de inactividad.
Uso de la utilidad SAR.
Puedes hacer dos cosas:
1) Monitor de rendimiento del sistema en tiempo real (CPU, memoria, E / S, etc)
2) Recoger datos de rendimiento en el fondo en una base en curso y hacer un análisis de los datos históricos para identificar cuellos de botella.
Sar es parte del paquete sysstat. Las siguientes son algunas de las cosas que puedes hacer con la utilidad sar.
Uso de la CPU colectiva
Estadísticas individuales del CPU
Memoria usada y disponible
El espacio de intercambio utilizado y disponible
Actividades de E/S del sistema en general
Actividades individuales de dispositivos de E/S
Estadísticas de cambio de contexto
Ejecutar cola y cargar los datos promedios
Estadísticas de red
Informe de datos SAR de un tiempo específico
y mucho más ..
El siguiente comando sar mostrará las estadísticas de la CPU del sistema 3 veces (con un intervalo de 1 segundo).
El siguiente comando "sar-b" informa de I/O estadísticas. "1 3" indica que el sar-b se ejecutará por cada 1 segundo para un total de 3 veces:
$ sar -b 1 3
Linux 2.6.18-194.el5PAE (dev-db) 03/26/2011 _i686_ (8 CPU)
01:56:28 PM tps rtps wtps bread/s bwrtn/s
01:56:29 PM 346.00 264.00 82.00 2208.00 768.00
01:56:30 PM 100.00 36.00 64.00 304.00 816.00
01:56:31 PM 282.83 32.32 250.51 258.59 2537.37
Average: 242.81 111.04 131.77 925.75 1369.90
Más informacion AQUI
2. - Tcpdump.
Tcpdump es un analizador de paquetes de red. Utilizando tcpdump puede capturar los paquetes y analizar para ver si existen cuellos de botella de rendimiento.
Tcpdump funciona en la mayoría de los sistemas operativos UNIX: Linux, Solaris, BSD, Mac OS X, HP-UX y AIX entre otros. En esos sistemas, tcpdump hace uso de la biblioteca libpcap para capturar los paquetes que circulan por la red. En UNIX y otros sistemas operativos, es necesario tener los privilegios del root para utilizar tcpdump.
El usuario puede aplicar varios filtros para que sea más depurada la salida. Un filtro es una expresión que va detrás de las opciones y que nos permite seleccionar los paquetes que estamos buscando. En ausencia de ésta, el tcpdump volcará todo el tráfico que vea el adaptador de red seleccionado.
El siguiente ejemplo muestra el comando tcpdump paquetes capturados en ASCII.
$ tcpdump -A -i eth0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
14:34:50.913995 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 1457239478:1457239594(116) ack 1561461262 win 63652
E.....@.@..]..i...9...*.V...]...P....h....E...>{..U=...g.
......G..7+KA....A...L.
14:34:51.423640 IP valh4.lell.net.ssh > yy.domain.innetbcp.net.11006: P 116:232(116) ack 1 win 63652
E.....@.@....i...9...*.V..*]...P....h....7......X..!....Im.S.g.u:*..O&....^#Ba...
E..(R.@.|.....9...i.*...]...V..*P..OWp........
Utilizando tcpdump puede capturar paquetes basados en varias condiciones personalizadas. Por ejemplo, la captura de paquetes que fluyen a través de un puerto en particular, la captura de comunicación TCP entre dos hosts específicos, capturar los paquetes que pertenecen a un tipo de protocolo específico, etc.
Más informacion AQUI
3.- Nagios.
Las redes, cada vez más, soportanaplicaciones y servicios estratégicos de las organizaciones. Por lo cual el análisis ymonitoreo de redes se ha convertido en una labor cada vez mas importante y de carácterpro-activo para evitar problemas.
Nagios es una solución de código abierto de seguimiento que puede controlar casi cualquier cosa en su infraestructura de TI. Por ejemplo, cuando un servidor se cae, puede enviar una notificación a su equipo de administración de sistemas, cuando una base de datos se cae lo posible la página de su equipo de DBA, cuando el servidor web de una baja se puede notificar al equipo adecuado.
También puede ajustar el nivel de advertencia y crítico umbral para varios servicios para ayudarle a resolver el problema de manera proactiva. Por ejemplo, se puede notificar equipo sysadmin cuando una partición de disco se llena al 80%, lo que dará tiempo suficiente para que el administrador de sistemas pueda trabajar en la adición de más espacio antes de que el asunto se vuelve crítico.
Nagios también tiene una interfaz de usuario muy buena desde donde se puede controlar el estado de su infraestructura de TI en general.
Instalacion:
Que se puede hacer con Nagios:
Monitorización de servicios de red (SMTP, POP3, HTTP, NTTP, ICMP, SNMP).
Monitorización de los recursos de un host (carga del procesador, uso de los discos, logs del sistema) en varios sistemas operativos, incluso Microsoft Windows con el plugin NRPE_NT.
Monitorización remoto, a través de túneles SSL cifrados o SSH.
Diseño simple de plugins, que permiten a los usuarios desarrollar sus propios chequeos de servicios dependiendo de sus necesidades, usando sus herramientas preferidas (Bash, C++, Perl, Ruby, Python, PHP, C#, Java, etc.).
Chequeo de servicios paralizados.
Posibilidad de definir la jerarquía de la red, permitiendo distinguir entre host caídos y host inaccesibles.
Más informacion AQUI
4.- Iostat.
Iostat informa sobre CPU, disco I/O, y las estadísticas NFS. Los siguientes son algunos de los ejemplos de comandos iostat. Iostat sin ningún argumento muestra información sobre el uso de CPU y E/S de información sobre todas las particiones del sistema como se muestra a continuación.
$ iostat
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011
avg-cpu: %user %nice %system %iowait %steal %idle
5.68 0.00 0.52 2.03 0.00 91.76
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 194.72 1096.66 1598.70 2719068704 3963827344
sda1 178.20 773.45 1329.09 1917686794 3295354888
sda2 16.51 323.19 269.61 801326686 668472456
sdb 371.31 945.97 1073.33 2345452365 2661206408
sdb1 371.31 945.95 1073.33 2345396901 2661206408
sdc 408.03 207.05 972.42 513364213 2411023092
sdc1 408.03 207.03 972.42 513308749 2411023092
avg-cpu: %user %nice %system %iowait %steal %idle
5.68 0.00 0.52 2.03 0.00 91.76
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 194.72 1096.66 1598.70 2719068704 3963827344
sda1 178.20 773.45 1329.09 1917686794 3295354888
sda2 16.51 323.19 269.61 801326686 668472456
sdb 371.31 945.97 1073.33 2345452365 2661206408
sdb1 371.31 945.95 1073.33 2345396901 2661206408
sdc 408.03 207.05 972.42 513364213 2411023092
sdc1 408.03 207.03 972.42 513308749 2411023092
Por defecto iostat muestra los datos de E / S para todos los discos disponibles en el sistema. Para ver las estadísticas de un dispositivo específico (por ejemplo, / dev / sda), utilice la opción-p, como se muestra a continuación.
$ iostat -p sda
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011
avg-cpu: %user %nice %system %iowait %steal %idle
5.68 0.00 0.52 2.03 0.00 91.76
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 194.69 1096.51 1598.48 2719069928 3963829584
sda2 336.38 27.17 54.00 67365064 133905080
sda1 821.89 0.69 243.53 1720833 603892838
Más informacion AQUI
5.- Mpstat
mpstat reporta estadísticas de procesadores. Los siguientes son algunos de los ejemplos de comandos mpstat.
Opción-A muestra, toda la información que puede ser mostrada por el comando mpstat como se muestra a continuación. Esto es realmente equivalente a "mpstat-I ALL-u-P ALL" comando
$ mpstat –A
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU)
10:26:34 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:26:34 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99
10:26:34 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98
10:26:34 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98
10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:26:34 PM CPU intr/s
10:26:34 PM all 36.51
10:26:34 PM 0 0.00
10:26:34 PM 1 0.00
10:26:34 PM 2 0.04
10:26:34 PM 3 0.00
10:26:34 PM CPU 0/s 1/s 8/s 9/s 12/s 14/s 15/s 16/s 19/s 20/s 21/s 33/s NMI/s LOC/s SPU/s PMI/s PND/s RES/s CAL/s TLB/s TRM/s THR/s MCE/s MCP/s ERR/s MIS/s
10:26:34 PM 0 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 7.47 0.00 0.00 0.00 0.00 0.02 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 4.90 0.00 0.00 0.00 0.00 0.03 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.04 0.00 0.00 0.00 0.00 0.00 3.32 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
10:26:34 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.
mpstat Opción-P ALL, muestra todas las CPU individual (o núcleos), junto con sus estadísticas, como se muestra a continuación.
$ mpstat -P ALL
Linux 2.6.32-100.28.5.el6.x86_64 (dev-db) 07/09/2011 _x86_64_ (4 CPU)
10:28:04 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle
10:28:04 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.99
10:28:04 PM 0 0.01 0.00 0.01 0.01 0.00 0.00 0.00 0.00 99.98
10:28:04 PM 1 0.00 0.00 0.01 0.00 0.00 0.00 0.00 0.00 99.98
10:28:04 PM 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
10:28:04 PM 3 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00
Más informacion AQUI
Búsqueda personalizada
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:
0 comentarios:
Publicar un comentario
No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Avisarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook,Twitter o Instagram. Gracias.