Es tiempo de reencuentros en qatecnico. Tras este largo
paréntesis en nuestros artículos relacionados con nuestro sistema operativo
preferido, volvemos con una nueva entrega que puede ser de utilidad para aquellos
que se dediquen a monitorizar el rendimiento del sistema.
Comandos de consulta de configuración de sistema.
Una situación típica durante la preparación de unas pruebas
de rendimiento de sistema, es averiguar si la máquina sobre la que estamos
monitorizando tiene (o responde) por una serie de IP como propias . Habitualmente , para
averiguar estos datos , se puede proceder de dos modos :
- como usuario con permisos administrativos de la máquina .
- usuario sin permisos especiales
Consulta como usuario privilegiado
En el primer caso, el comando a ejecutar sería el que
permite realizar cambios de la configuración de los interfaces de red de la
máquina. Dicho comando es el ifconfig
Para usarlo con meros propósitos de consulta, debemos ejecutar
en línea de comandos ifconfig. Mostramos
un ejemplo sobre un sistema con sólo una tarjeta de red
[root@mortadelo ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:04:C5:06:F3:BF
inet addr:192.168.9.64 Bcast:192.168.9.255 Mask:255.255.254.0
inet6 addr:
ff50::142:c2bf:fe06:f3:bf/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500
Metric:1
RX packets:3581337903 errors:0
dropped:0 overruns:0 frame:0
TX packets:3956497861 errors:0
dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1572087099 (1.4 GiB) TX bytes:2666945600 (2.4 GiB)
Interrupt:16
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436
Metric:1
RX packets:8461 errors:0 dropped:0
overruns:0 frame:0
TX packets:8461 errors:0 dropped:0
overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:6134634 (5.8 MiB) TX bytes:6134634 (5.8 MiB)
|
Hemos marcado en negrita, la dirección IP de la tarjeta de
red eth0 por la que responde el equipo (192.168.9.64).
En el caso de que se disponga de varias tarjetas o interfaces de red (una wifi,
un interfaz virtual…etc) los datos relativos a la dirección y a la
configuración aparecerán agrupados a la derecha del nombre del interfaz.
La información incluye además datos relativos a
configuración del protocolo TCP/IP en este caso,como tamaño de MTU, métrica de
saltos , máscara , valores de la
MAC..etc. Como podemos ver esta es una información que, aparte
de útil, puede ser bastante sensible, por lo que hemos de proceder con cuidado
a la hora de proporcionarla.
Consulta de configuración como usuarios sin privilegios.
En este caso, el comando que permite realizar esta consulta
es el netstat.
Habitualmente la invocación directa del comando está
disponible para los usuarios sin privilegios específicos. No obstante, hemos de indicar que, debido a la
cantidad de información que consulta y proporciona, es un comando cuyo uso no
puede ser realizado de manera contínua por el consumo de recursos que realiza.
Nota: El comando al ejecutarse por defecto recurre a la
invocación de DNS, por lo que su tiempo de respuesta puede verse incrementado
de manera notable por latencias de red, tiempos de espera de respuesta de los DNS…etc.
La invocación correcta desde el punto de vista de
rendimiento y tiempo de respuesta de cara al usuario o shell script que lo incluya , debe de utilizar como parámetro de llamada el modificador -n
Con esta opción, deshabilitamos la resolución de nombres que
realizaría la conversión de IP a nombre, con la consiguiente reducción de
tiempo de respuesta y procesamiento por parte de la máquina.
Dependiendo de la versión de sistema UNIX , la salida del
comando devolverá unos valores u otros. No obstante, termina devolviendo las IP
por las que responde el sistema, junto con información de la red (máscaras de
subred, encaminadores…etc.)
La invocación, digamos de manera genérica del comando sería
de la siguiente forma
$ netstat -ian
|
-i: Muestra todos los datos activos
-n: Presenta los datos de manera numérica, sin traducir
direcciones
-a: Muestra todas las interfaces activas, sean físicas o
virtuales.
Ejemplos de salida del comando según versiones UNIX.
Solaris
AIX
HP-UX
En este caso, el parámetro –w es indicado para mostrar todos
los datos dentro de la pantalla de consola (135 x 80)
La información que nos aporta la configuración nos permite
- Especificar qué IP responden en la máquina
- Conocer el MTU de red configurado
- Cuantificar el número de paquetes deshechados
- Monitorizar las colisiones que se presentan
Esta es, evidentemente una información valiosa para
propósitos de monitorización de la red. La fragmentación, rechazos y redirecciones
son sin duda alguna, valores que pueden afectar decisivamente al rendimiento de
las aplicaciones que usen instancias o servicios de las máquinas.
Monitorización específica.
Como ya hemos indicado, el uso del comando netstat conlleva
un gasto adicional en recursos, que, en situaciones de alto desempeño, pueden
afectar de manera notable a las capacidades de las máquinas donde se ejecute:
recordemos el principio de Heisengber, y una de las interpretaciones de dicho
postulado: la observación afecta a los resultado.
Habitualmente, la salida correspondiente a la ejecución del
comando netstat –an, nos permite observar qué conexiones se están estableciendo
y sus distintos estados.
La interpretación que se debe de hacer, según nuestros
conocimientos, experiencia y lectura de las cartas del tarot es la siguiente
Estado TCP
|
Interpretación
|
ESTABLISHED
|
Las conexiones en este estado pueden interpretarse como
sesiones activas contra el puerto TCP de la aplicación
|
TIME_WAIT
|
Sesiones a la espera de respuesta de conexión.
|
CLOSE_WAIT
|
Sesiones cerrándose
|
Debemos destacar que si bien el estado ESTABLISHED lo
consideramos un muestreador de la concurrencia, los estados TIME_WAIT y
CLOSE_WAIT son indicativos de cuellos de botella de red.Especialmente si se observa una clara
descompensación entre las sesiones establecidas y las que quedan en el resto de
estados.
El uso de estos comandos permite tener una idea bastante aproximada del comportamiento y uso de la máquina ,sus interfaces de red y concurrencia durante la operación habitual del sistema.
Esperamos ofreceros próximamente más información que sea útil en este blog.
La informacion acerca del sistema operativo UNIX y sus comandos es realmente util.
ResponderEliminarPor favor seguir instruyendonos con sus conocimientos