Administración de Windows

Cómo tomarle el pulso a un servidor

Steven Choy

 

De un vistazo:

  • Personalización del monitor de rendimiento
  • Orientación sobre los elementos que se deben medir y la frecuencia
  • Información general sobre los contadores clave y los conceptos de búsqueda

Contenido

Hacer que los resultados sean más legibles
Elementos y período de medición
Cuello de botella de disco duro
Cuello de botella de memoria
Cuello de botella de procesador
Cuello de botella de red
Cuello de botella de proceso
Conclusión

Imagínese que acaba de llegar a la oficina un lunes por la mañana y le saluda un usuario ansioso que se queja de que su servidor va demasiado lento. ¿Cómo empezaría a ayudarle? Rendimiento

El Monitor de sistema, una práctica herramienta integrada en Windows®, puede ayudarle a diagnosticar el problema.

Para obtener acceso al monitor de rendimiento, escriba perfmon en el símbolo del sistema o seleccione el Monitor de rendimiento o Monitor de confiabilidad y rendimiento (en Windows Vista® y Windows Server® 2008) en el menú Herramientas administrativas. Para agregar los contadores de rendimiento y objetos que desea supervisar, haga clic en el signo más y seleccione los elementos deseados de la lista de posibles opciones.

Entonces, ¿cómo se le toma el pulso a un servidor? Existen más de 60 objetos de rendimiento básicos, y cada objeto contiene varios contadores. En este artículo hablaremos de los contadores que revelan las constantes vitales de un servidor y describiremos los intervalos típicos de muestreo que los ingenieros de soporte técnico de Microsoft® emplean más a menudo para solucionar los problemas relacionados con el rendimiento.

Por supuesto, una línea de base ofrece un punto de referencia fundamental a la hora de solucionar problemas. Puesto que la carga del servidor depende de los requisitos empresariales y, además, varía ocasionalmente en función del ciclo de negocio, es importante establecer una línea de base determinada por la carga de trabajo normal durante un período especificado. Eso le permite observar los cambios e identificar las tendencias.

Hacer los resultados más legibles

Antes de profundizar en un análisis de los contadores que representan las constantes vitales de los servidores, comentaremos dos trucos que le facilitarán la medición de dichas constantes vitales mediante el Monitor de rendimiento. Tenga en cuenta que, si bien estos trucos no son necesarios en Windows Vista ni en Windows Server 2008, si ejecuta el Monitor de rendimiento en versiones anteriores de Windows, estos ajustes podrían resultar de gran utilidad.

En primer lugar, quite todas las interferencias de muestra que impiden obtener una vista gráfica clara de las líneas de tendencia. En Windows Vista y Windows Server 2008, el Monitor de rendimiento puede mostrar hasta 1.000 puntos de datos en la vista gráfica. En versiones anteriores de Windows, el límite es de tan sólo 100 puntos de datos. Cuando existen más de 100 puntos, el Monitor de rendimiento "empaqueta" los puntos de datos. Un paquete se representa mediante una línea vertical, que indica el número mínimo, el promedio y el número máximo de puntos de muestra incluidos en el paquete.

Como puede comprobar en el gráfico de la figura 1, resulta difícil marcar la línea de la tendencia cuando se muestran tantos datos al mismo tiempo. El gráfico de la figura 2 muestra cuánto más fácil resulta capturar los datos con rapidez una vez desactivada toda la información visual superflua. Para obtener información sobre cómo desactivar estas líneas verticales, vea el artículo de Microsoft Knowledge Base disponible en support.microsoft.com/kb/283110.

fig01.gif

Figura 1 Datos de rendimiento mostrados con paquetes que distraen y sin comas (haga clic en la imagen para ampliarla)

fig02.gif

Figura 2 Vista más limpia de los datos con separadores de coma (haga clic en la imagen para ampliarla)

El segundo truco consiste en agregar separadores de coma entre los números, lo que facilita enormemente la lectura de los valores que muestran los contadores. Windows Vista y Windows Server 2008 tienen los separadores de coma habilitados de forma predeterminada. En versiones anteriores de Windows, sin embargo, el Monitor de rendimiento no habilita las comas de forma predeterminada.

Esto puede no parecer una gran diferencia, pero echemos un vistazo a la figura 1, que muestra los contadores de rendimiento sin comas y, seguidamente, miremos la figura 2, que muestra los contadores con comas. En mi opinión, el segundo resulta mucho más legible. Para obtener instrucciones sencillas sobre cómo agregar separadores de coma a contadores de rendimiento en Windows XP, vea el artículo de Microsoft Knowledge Base en support.microsoft.com/kb/300884.

Elementos y período de medición

Los cuellos de botella suelen producirse cuando un recurso alcanza su límite de capacidad, lo que provoca una ralentización del rendimiento de todo el sistema. Los cuellos de botella son provocados normalmente por recursos insuficientes o configurados incorrectamente, componentes que no funcionan debidamente o solicitudes incorrectas de recursos realizadas por un programa.

Existen cinco áreas principales de recursos que pueden causar cuellos de botella y afectar al rendimiento del servidor: el disco físico, la memoria, el proceso, la CPU y la red. Si se hace un uso excesivo de cualquiera de estos recursos, el servidor o la aplicación pueden ralentizarse notablemente o incluso bloquearse. Describiremos cada una de estas cinco áreas y ofreceremos orientación sobre los contadores que deben usarse, así como los umbrales sugeridos para medir el pulso de los servidores.

Dado que el intervalo de muestreo tiene una repercusión considerable en el tamaño del archivo de registro y la carga del servidor, deberá establecer dicho intervalo en función del lapso de tiempo medio que transcurre hasta que se produce el problema para poder establecer una línea de base antes de que el problema se vuelva a producir. Esto le permitirá detectar cualquier tendencia que conduzca al problema.

Quince minutos son un buen marco para establecer una línea de base durante las operaciones más habituales. Si el tiempo medio transcurrido hasta que se produce el problema es de unas cuatro horas, establezca el intervalo de muestreo en 15 segundos. Si dicho tiempo es de ocho horas o más, establezca el intervalo de muestreo en por lo menos cinco minutos, ya que, de lo contrario, acabará obteniendo un archivo de registro con un tamaño desmesurado, lo que dificultará enormemente el análisis de los datos.

Cuello de botella de disco duro

Debido a que el sistema de disco almacena y controla los programas y los datos del servidor, un cuello de botella que afecte al uso y a la velocidad del disco tendrá una gran repercusión en el rendimiento general del servidor.

Tenga en cuenta que si los objetos de disco no se han habilitado en su servidor, deberá usar la herramienta de línea de comandos Diskperf para habilitarlos. Asimismo, observe que % de tiempo de disco puede superar el 100 por ciento y que, por lo tanto, personalmente prefiero usar % de tiempo inactivo, promedio de segundos de disco/lectura y promedio de segundos de disco/escritura para tener una idea más exacta de hasta qué punto está ocupado el disco duro. Encontrará más información sobre % de tiempo de disco en el artículo de Microsoft Knowledge Base disponible en support.microsoft.com/kb/310067.

A continuación están los contadores que emplean los ingenieros de soporte técnico de Microsoft para supervisar los discos.

Disco lógico\% de espacio libre Mide el porcentaje de espacio libre existente en la unidad de disco lógica seleccionada. Procure que este indicador no se sitúe por debajo del 15 por ciento, ya que corre el riesgo de quedarse sin espacio disponible para que el sistema operativo pueda almacenar archivos críticos. Una solución obvia en este caso sería agregar más espacio en disco.

Disco físico\% de tiempo inactivo Mide el porcentaje de tiempo en el que el disco ha permanecido inactivo durante el intervalo de muestreo. Si este contador se sitúa por debajo del 20 por ciento, el sistema de disco estará saturado. Una opción es reemplazar el sistema de disco actual por un sistema más rápido.

Disco físico\Promedio de segundos de disco/lectura Mide el promedio de tiempo en segundos que necesita el disco para leer datos. Si este número es superior a 25 milisegundos (ms), significa que el sistema de disco sufre latencia al leer desde el disco. Para los servidores fundamentales que hospedan SQL Server® y Exchange Server, el umbral aceptable es mucho más bajo, aproximadamente 10 ms. La solución más lógica en este caso consiste en reemplazar el sistema actual de disco por un sistema más rápido.

Disco físico\Promedio de segundos de disco/escritura Mide el promedio de tiempo en segundos que se tarda en escribir datos en el disco. Si el número supera los 25 ms, el sistema de disco sufrirá latencia al escribir en el disco. Para los servidores fundamentales que hospedan SQL Server y Exchange Server, el umbral aceptable es mucho más bajo, aproximadamente 10 ms. La solución más probable en este caso es reemplazar el sistema de disco con un sistema más rápido.

Disco físico\Longitud promedio de la cola de disco Indica el número de operaciones de E/S que permanecen a la espera de que la unidad de disco duro esté disponible. Si el valor en este caso es superior al número de ejes más dos, significa que el propio disco puede ser el cuello de botella.

Memoria\Bytes de caché Indica la cantidad de memoria en uso para la memoria caché del sistema de archivos. Si este valor es superior a 200 MB, podría haber un cuello de botella del disco.

Cuello de botella de memoria

Una escasez de memoria es normalmente debida a una cantidad insuficiente de RAM, una pérdida de memoria o un modificador de comandos de memoria insertado en el archivo boot.ini. Antes de pasar a hablar de los contadores de memoria, nos detendremos en el parámetro /3GB.

Una mayor cantidad de memoria reduce la actividad de E/S del disco lo que, a su vez, mejora el rendimiento de las aplicaciones. El parámetro /3GB se introdujo en Windows NT® como una manera de proporcionar más memoria para los programas de modo de usuario.

Windows usa un espacio de direcciones virtual de 4 GB, independientemente de la cantidad de RAM física de que disponga el sistema. De forma predeterminada, los 2 GB inferiores se reservan para programas de modo de usuario y los 2 GB superiores para programas de modo kernel. Sin embargo, el parámetro /3GB permite asignar 3 GB a los procesos de modo de usuario. Esto, por supuesto, se produce en detrimento de la memoria del kernel, que dispondrá tan sólo de 1 GB de espacio de direcciones virtual. Y esto puede causar problemas, ya que los bytes de bloque no paginado, los bytes de bloque paginado, las entradas libres de la tabla de páginas del sistema y el montón del escritorio están todos apretados en un único GB de espacio. Por lo tanto, el parámetro /3GB sólo debe usarse después que comprobar a fondo el entorno.

Se trata de un tema a tener en cuenta si sospechamos que estamos sufriendo un cuello de botella relacionado con la memoria. Si el parámetro /3GB no es la causa de los problemas, puede usar estos contadores para diagnosticar un posible cuello de botella de la memoria.

Memoria\% de bytes confirmados en uso Mide la proporción de bytes confirmados respecto al límite de confirmación, es decir, la cantidad de memoria virtual en uso. Indicará que no hay memoria suficiente si el número es superior al 80 por ciento. La solución obvia en este caso consiste en agregar más memoria.

Memoria\% Mbytes disponibles Mide la cantidad de memoria física, en megabytes, disponible para los procesos que se están ejecutando. Si este valor es inferior al 5 por ciento de la RAM física total, significa que no hay memoria suficiente, lo que puede provocar un aumento de la actividad de paginación. Para resolver este problema, basta con agregar más memoria.

Memoria\Entradas libres de la tabla de páginas del sistema Indica el número de entradas de la tabla de páginas que no está usando actualmente el sistema. Si este número es inferior a 5.000, es muy posible que haya una pérdida de memoria.

Memoria\Bytes de bloque no paginado Mide el tamaño en bytes del bloque no paginado. Se trata de un área de la memoria del sistema para aquellos objetos que no pueden escribirse en el disco, sino que deben permanecer en la memoria física mientras estén asignados. Si el valor es superior a 175 MB (o 100 MB con el parámetro /3GB), es posible que haya una pérdida de memoria. Se graba un identificador típico de evento 2019 en el registro de eventos del sistema.

Memoria\Bytes de bloque paginado Mide el tamaño en bytes del bloque paginado. Se trata de un área de la memoria del sistema empleada para los objetos que pueden escribirse en el disco cuando no se usan. Si este valor es superior a 250 MB (o 170 MB con el parámetro /3GB), es posible que haya una pérdida de memoria. Se graba un identificador típico de evento 2020 en el registro de eventos del sistema.

Memoria\Páginas por segundo Mide la velocidad a la que se leen las páginas desde el disco o se escriben en éste para resolver errores severos de página. Si el valor es superior a 1.000, es posible que se produzca una pérdida de memoria a consecuencia de un exceso de paginación.

Cuello de botella de procesador

Una carga excesiva del procesador puede ser debida a que el propio procesador no ofrece un rendimiento suficiente o bien a una aplicación ineficaz. Deberá comprobar si el procesador invierte mucho tiempo en la paginación a consecuencia de no disponer de suficiente memoria física. Para investigar un posible cuello de botella de procesador, los ingenieros de soporte técnico de Microsoft emplean los siguientes contadores.

Procesador\% de tiempo de procesador Mide el porcentaje de tiempo transcurrido que invierte el procesador en ejecutar un subproceso no inactivo. Si el porcentaje es superior al 85 por ciento, el procesador está sobrecargado, por lo que es posible que el servidor requiera un procesador más rápido.

Procesador\% de tiempo de usuario Mide el porcentaje de tiempo transcurrido que el procesador invierte en el modo de usuario. Si este valor es alto, significa que el servidor está ocupado con la aplicación. Una posible solución en este caso sería optimizar la aplicación que está agotando los recursos del procesador.

Procesador\% de tiempo de interrupción Mide el tiempo que el procesador invierte en recibir y atender interrupciones de hardware durante intervalos específicos de muestreo. Este contador indica un posible problema de hardware si el valor es superior al 15 por ciento.

Sistema\Longitud de la cola del procesador Indica el número de subprocesos que contiene la cola del procesador. Si el valor es más de dos veces el número de unidades CPU durante un período prolongado, significa que el servidor no tiene suficiente potencia de procesador.

Cuello de botella de red

Un cuello de botella de red, por supuesto, afecta a la capacidad del servidor para enviar y recibir datos a través de la red. Puede tratarse de un problema con la tarjeta de red del servidor, o quizás que la red se haya quedado saturada y necesite segmentarse. Puede usar los siguientes contadores para diagnosticar los posibles cuellos de botella de la red.

Interfaz de red\Total de bytes/s Mide la velocidad a la que se envían y reciben bytes a través de cada adaptador de red, incluidos los caracteres de tramas. Si detecta que se consume más del 70 por ciento de la interfaz, significa que la red está saturada. Para una tarjeta NIC de 100 Mbps, la interfaz consumida es de 8,7 MB por segundo (100 Mbps = 100.000 kbps = 12,5 MB por segundo * 70 por ciento). En una situación de este tipo, se recomienda agregar una tarjeta de red más rápida o bien segmentar la red.

Interfaz de red\Longitud de la cola de salida Mide la longitud de la cola de paquetes de salida (en paquetes). Si el valor es superior a dos, la red está saturada, situación que podrá solventar agregando una tarjeta de red más rápida o segmentando la red.

Cuello de botella de proceso

El rendimiento del servidor se verá gravemente afectado si tiene un proceso que no funciona de la manera prevista o procesos que no están optimizados. Las pérdidas de subprocesos e identificadores podrían incluso llegar a bloquear un servidor, mientras que un uso excesivo del procesador ralentizará notablemente su rendimiento. Los siguientes contadores son imprescindibles para diagnosticar cuellos de botella relacionados con procesos.

Proceso\Recuento de identificadores Mide el total de identificadores abiertos actualmente por un proceso. Si el número es superior a 10.000, el contador indica una posible pérdida de identificadores.

Proceso\Número de subprocesos Mide el número de subprocesos activos en ese momento en un proceso. Si el número es superior a 500 entre la cantidad mínima y máxima de subprocesos, podría haber una pérdida de subprocesos.

Proceso\Bytes privados Indica la cantidad de memoria que ha asignado el proceso en cuestión y que no puede compartirse con otros procesos. Si el valor es superior a 250 entre la cantidad mínima y máxima de subprocesos, podría haber una pérdida de memoria.

Conclusión

Ahora ya sabe qué contadores usan los ingenieros de soporte técnico de Microsoft para diagnosticar los diversos cuellos de botella. Por supuesto, lo más probable es que se cree su propio conjunto de contadores favoritos adaptados a sus necesidades específicas. Si no desea perder tiempo agregando manualmente los contadores favoritos cada vez que se dedique a supervisar sus servidores, afortunadamente existe una opción en el Monitor de rendimiento que le permite guardar todos los contadores en una plantilla para poder usarlos en futuras ocasiones.

Es posible que siga preguntándose si debe ejecutar el Monitor de rendimiento de manera local o remota. Y si lo ejecuta en local, ¿cómo se verá afectado el rendimiento? Todo dependerá de su entorno específico. Si establece intervalos de al menos cinco minutos, el rendimiento del servidor apenas se verá afectado.

Se recomienda ejecutar el Monitor de rendimiento en local si se conoce que existe un problema de rendimiento en el servidor, ya que el Monitor de rendimiento podría no ser capaz de capturar los datos de un equipo remoto si se agotan los recursos en el servidor. Ejecutarlo de forma remota desde un equipo centralizado es en realidad la mejor opción en situaciones en las que se desea supervisar o establecer una línea de base para varios servidores.

Steven Choy es Ingeniero de campo principal en Microsoft. Ha prestado asistencia técnica a organismos gubernamentales y clientes comerciales en proyectos de implementación y migración de escritorios, administración de revisiones y directiva de grupo. Sus esfuerzos se centran actualmente en la virtualización y el estado de funcionamiento de servidores.

© 2008 Microsoft Corporation y CMP Media, LLC. Reservados todos los derechos. Queda prohibida la reproducción parcial o total sin previa autorización.