lunes, 18 de abril de 2011

Monitorización de ancho de banda con SNMP

A la hora de monitorizar interfaces de red, los sistemas operativos (de servidores o switches) no suelen proporcionar el consumo de ancho de banda instantáneo. O al menos no suelen proporcionarlo de una manera que pueda recolectarse de manera fácil.

A día de hoy casi cualquier aparato dentro de un CPD implementa SNMP, y aunque tampoco proporciona el valor de ancho de banda consumido, se puede calcular mediante otros valores. El proceso para calcularlo es el siguiente.

Se toma una medida de tiempo y se consulta al aparato cuántos bytes se han transferido. Un tiempo después se vuele a repetir el proceso y se calcula la velocidad. Para esto, se utilizan los OID IfInOctets (1.3.6.1.2.1.2.2.1.10) y IfOutOctets (1.3.6.1.2.1.2.2.1.16). Estos proporcionan en bytes, la cantidad de datos transferida, de entrada y salida, desde que se reinició el contador. Normalmente el reinicio del contador se produce con un reinicio del sistema.

Hasta aquí el proceso es simple, pero hay un problema con estos OID: son de 32 bits. Hoy en día la velocidad básica en un CPD para red ethernet es de de 1Gbps. Esto implica que el contador se desbordará a los 34 segundos. Y en menos tiempo para red SAN, que suelen usar velocidades entre 2 Gbps y 8 Gbps.

Este problema se resuelve con otros OID que son la versión de 64 bits de los anteriores: IfHCInOctets (1.3.6.1.2.1.31.1.1.1.6) y IfHCOutOctets (1.3.6.1.2.1.31.1.1.1.10). Estos OID deben consultarse mediante SNMP v2.

Pero algunos sistemas no implementan estos OID, por lo que hay que trabajar con los de 32 bits. En estos casos, no es suficiente con que las consultas se separen menos de 34 segundos, ya que puede haber ocurrido un desbordamiento. Una manera de detectar el desbordamiento es comprobar que el segundo valor leído es menor que el primero. En este caso se puede sumar 2^32-1 bytes con lo que se resuelve el problema. Pero si se ha tardado mucho en realizar la segunda lectura, puede ser que esta sea mayor que la primera, por lo que el desbordamiento no se puede detectar.

No hay comentarios:

Publicar un comentario