miércoles, julio 18, 2007

Perfomance: Terminal Services.

Ya hemos analizado una serie de contadores que nos han ayudado a medir como se esta comportando nuestro sistema, vemos como esta la salud, sus "latidos", la presion, etc. tenemos al paciente con sus sintomas bien identificados :D

Pero hemos medido sin enfocarnos en un tipo de servicios en particular, en esta ocasion quiero aprovechar de que veamos el comportamiento de un Terminal Server (usare terminos en Ingles) y como identificar donde podemos tener un problema.

Los contadores que debemos recolectar son los siguientes:

Memory

  • Pages/Sec
  • Available Mbytes
  • Committed Bytes
  • Page Faults/Sec

Network Interface

  • Bytes Total/Sec
  • Packets/Sec

Paging File

  • % Usage

Physical Disk

  • % Disk Time
  • Avg Disk Bytes/Transfer
  • Avg Disk Queue Length
  • Avg Disk Sec/Transfer
    Disk Transfers/Sec

Processor

  • % Processor Time
  • % Privilege Time
  • % User Time
  • Interrupts/Sec

System

  • Context Switches/Sec
  • Processes
  • Processor Queue Length

Terminal Services

  • Active Sessions
  • Total Sessions

Terminal Services Session

  • % Processor Time
  • Page Faults/Sec

El intervalo de tiempo de las mediciones depende de el tiempo total que queremos medir, si necesitamos mediciones en cortos periodos de tiempo las muestras son mas seguidas, cada 15 o 30 segundos, si mediremos durante todo un dia o varios dias, tomarlas cada 1 o 2 minutos. Esto suponiendo que estamos tratando de averiguar si algo anomalo esta ocurriendo en nuestra maquina, si queremos tomar medidas para realizar un analisis de crecimiento o algo asi, las medidas pueden tomarse con menos frecuencia aun.

Ya una vez tomados los resultados leemos el archivo usando la herramienta perfomance monitor como lo vimos anteriormente.

Cabe hacer notar que si tenemos un Terminal Server es generalmente para que usuarios se conecten a el y ejecuten aplicaciones de usuarios, este servidor debiera condfigurarse para tener un mejor perfomance para aplicaciones activas y no para background.

Memoria:

Como vimos al analizar la memoria el contador de paginas por segundo debe mantenerse en valores cercanos a cero, si este numero se mantiene en valores altos en forma consistente es que necesitamos agregar mas RAM.

La memoria disponible tambien hay que mantenerla bajo control, si suponemos que una conexion de usuarios usa entre 64 a 128 Mb debiera yener disponibles valores mayores para poder seguir aceptando conexiones.

Los Committed Bytes es bueno conocerlos, cuando un proceso se ejecuta, el Kernel reserva una cantidad de espacio en el archivo de paginacion, esto solo es una reserva y no implica necesariamente que el proceso esta paginando.

Page/faults por segundo es cuando el proceso necesita obtener datos que no se encuentran cargados en memoria, es normal que al inicio de un proceso aumente este numero ya que esta "cargandose" en memoria, pero debiera tender a cero una vez esta en ejecucion la aplicacion.

Hay procesos que hacen uso de memoria que muchas veces no se consideran como tales, por ejemplo el escritorio activo, las animaciones de mouse, el fondo de pantalla, etc, todos ellos usan recursos tambien y no son despresiables.

Red:

En el artículo de perfomance de red revisamos varios contadores, esta vez solo revisaremos 2 de ellos.

Bytes Total por segundo, esto nos muestra el trafico que se esta generando en la red, segun vimos anteriormente, al compararlo con la velocidad de la tarjeta, no debiera superar el 60% al 70% del ancho de banda, si es mayor hay que pensar en una tarjeta de mayor velocidad o armar un team.

El numero de paquetes por segundo tambien nos muestra que tan "activa" estan nuestras interfases.

Archivo de Paginacion:

Como vimos en el articulo sobre este tema su uso no debiera sobrepasar el 50%, para terminal server el tamaño debe ser entre 1.5 a 2 veces la RAM del equipo, el hacer crecer mas que eso el archivo de paginacion no se ganara mas en perfomance aunque pareciera que la utilizacion esta dentro de lo recomendado.

Disco Físico:

Las recomendacion que vimos en el articulo sobre perfomance de Disco son muy validas en esta ocasion tambien, altos valores por ejemplo de %Disk Time indican por ejemplo mucha paginacion o discos muy lentos, las aplicaciones de usuarios generalmente no son muy estresantes para los discos, bueno, dependiendo de la aplicacion tambien :S (si no entienden este simbolo, lean mi articulo sobre los emoticones)

Avg Disk Bytes/ Transfer , las tecnologias de hoy en dia nos permiten una transferencia de de entre 80Mb a 95Mb por segundos, en discos compuestos por arreglos lograriamos velocidades mayores ya que la escritura se realiza en paralelo sobre ellos, por ejemplo un RAID 5 de 4 discos tendra transferencias de entre 320Mb a 380Mb por segundo.

Las transferencias promedios en segundos a los discos no debiera superar los 20 ms y los peaks no debieran pasar los 50 ms ya sea de lectura o escritura

Procesador:

De lo primero que les menciones es sobre el uso del procesador, seguramente por que es lo que mas se ve afectado si alguno de los demas recursos comienza a escasear, en un terminal server este recurso es compartido por todos los usuarios, y si uno de ellos tira algun proceso pesado los demas tambien se veran afectados, sin embargo las aplicaciones que usan por lo general no son procesos muy pesados y nos relajamos un poco, sin embargo debemos cuidar que el % Time Procesor no supere el 90% por mucho tiempo.

El % de User Time tiende a ser mayor que en servidores con otro tipo de servicios ya que el tipo de procesos que se ejecutan son un poco diferentes, principalmente son aplicaciones como Office, como correo, word, excel, presentaciones, etc. o aplicaciones tipo ERP, contabilidad.

Ojo con el antivirus! no por que sea un servidor donde se conectan usuarios hay que colocar un antiivirus de desktop, es el peor error, hay que usar un antivirus de server, pues sino por cada conexion de usuario se abrira una instancia y los recursos consumidos se multiplicaran en la medida que cada vez mas usuarios se conecten. Ojo con aplicaciones como antispyware o programas similares de seguridad.

System:

Estos contadores generalmente se consideran dentro de contadores de procesador o memoria, nos muestran en general como se esta comportando el sistema.

Context Switches/Sec nos indica cambios de contexto en el sistema, ya sea al pasar de un proceso a otro, cambios de prioridad, cambio de modo (usuario/kernel) etc, este numero varia segun la velocidad del procesador, aunque es un numero que debiera mantenerse en valores bajos, no nos asustemos si en un Terminal Server llegan a 3000 o 5000 por procesador, esto se debe a la gran cantidad de procesos que estan ejecutandose, a mayor cantidad de usuarios, mayor es el numero esperable de este contador.

Processor Queue Length, numeros consistentemente sobre 3 o 4 por procesador indican que o se necesitan mas procesadores o la carga esta muy alta.

Terminal Services:

Estos contadores solo estan en servidores terminal server :D es como obvio, aunque creo que mas de alguno pensara encontrarlos si esta habilitado Remote Desktop, pues es asi, aunque no sea un Terminal Server con solo tener activo remote desktop veremos este contador.

Active Session es muy util a la hora de analizar el uso del procesador, con este valor podemos dimensionar que nos significaria crecer en cantidad de usuarios.

Total sesions son los usuarios logueados, independiente si estan activos o desconectados, es util para tambien en el calculo de memoria usada por usuario.

Terminal Services Session

Los contadores de este objeto nos muetran el uso de los recursos de alguna sesion particular, nos ayuda a identificar que sesion es la que esta teniendo problemas de perfomance.

Las aplicaciones al desconectarse el usuario sin dar logoff siguen consumiendo recursos, mas de una vez me ha tocado ver que dejan corriendo procesos pesados y se desconectan de la sesion.

Perfomance Monitor sigue siendo mi herramienta favorita a la hora de ver como se esta comportando la maquina, es buena idea cada 3 a 6 meses repetir las mediciones para ver como ha ido cambiando la carga, o tambien al cambiar alguna configuracion de hardware, tal como agregar memoria o agregar procesadores, asi se aprecia cual fue el cambio que se logro con esa accion.

Espero les haya servido esta guia tanto como yo disfrute escribiendola.

Saludos!

Isa

No hay comentarios.: