Monday, July 10, 2006

Solaris TIPS: Performance de Discos

En estos TIPS, pondré algunas papitas que permiten analizar el rendimiento de algunos subsistemas importantes del sistema operativo (Solaris en este caso, pero los conceptos son ampliables a los otros sabores de Unix y Linux). Voy a empezar con el subsistema de I/O (discos) y después iré agregando otros subsistemas (como CPU, Memoria, etc), espero. Estos tips son en el fondo recopilaciones de ideas que he sacado de libros, blueprints, escalamientos, etc.

La "utilización" de un disco (%busy) es un parámetro muy usado. Los discos son muestreados por una interrupción con un reloj de 100MHz, para ver si estos están ocupados o no. Además, el driver envía comandos al disco y mide cuanto se demora en responder y cuanto tiempo el disco está ocioso (idle) entre comandos. Un disco con un %busy de 100 indica que no tiene tiempo libre antes de que el siguiente comando es enviado. Discos que mantienen sobre un 35% de %busy en un intervalo de 30 segundos están probablemente causando algún tipo de problema de performance.

El comando "iostat" en Solaris sin argumentos, muestra un nuevo valor: service time. Esta valor está expresado en milisegundos y corresponde al tiempo promedio tomado en completar una solicitud de I/O, incluyendo el tiempo gastado en esperar porque terminen los requerimientos que estaban primeros en la cola de I/O.

Como Decidir cuando un Disco está Sobrecargado?

El valor clave que hay que mirar es el "service time" (svc_t) del comando iostat. Este es el tiempo tomado en servir un requerimiento de I/O en el disco, incluyendo el tiempo gastado en esperar en la cola debido a que otros requerimientos están siendo procesados. En situaciones de muy alta carga, peaks grandes de service time pueden ocurrir, por lo cual es importante tener un umbral de alta carga y/o un baseline del comportamiento del subsistema de I/O. Discos que tienen un %busy sobre 20% deben ser mirados constantemente para revisar el tiempo de servicio. En general, service time de hasta 20 milisegundos son aceptables para discos de fibra (actuales). Valores mayores indican que puede existir algún tipo de cuello de botella si es que la utilización es alta constantemente.


Continuará ...

No comments: