Compartir a través de


Caso práctico: escalado de IIS 8 en un sistema HP Proliant DL980 G7 con 8 sockets de procesador

de Microsoft

Este documento técnico compila los resultados de un esfuerzo conjunto entre HP y el equipo de productos de IIS para evaluar las funcionalidades de rendimiento de IIS cuando se ejecuta en sistemas de 8 vías de HP. Este documento técnico también sirve como una guía de implementación que los clientes pueden usar para configurar IIS en estos sistemas.

Resumen: En este caso práctico se describe cómo implementar y optimizar Microsoft IIS 8.0 Server en sistemas de 8 vías de HP.

Autores: Hewlett-Packard (HP), el equipo de productos de IIS (IIS) y Microsoft Enterprise Engineering Center (EEC)

Introducción

La carga de trabajo del servidor web normalmente está asociada a servidores básicos en un modelo de escalado horizontal. Cuando se requiere potencia de procesamiento adicional, se agregan máquinas adicionales al grupo. Este es un modelo muy común y Microsoft Internet Information Services (IIS) tiene varias características que facilitan la configuración e implementación de este enfoque.

Normalmente, el modelo de escalado vertical está asociado a otras cargas de trabajo, como SQL Server. Sin embargo, la realidad es que, durante el lanzamiento de Windows Server 2012, se realizaron varias inversiones en la infraestructura de IIS para mejorar el modelo de escalado vertical. Como resultado de estas inversiones, IIS 8.0 se puede implementar de forma que aproveche todas las características de los servidores a gran escala. Esto permite a los clientes explotar toda la potencia y confiabilidad de estas máquinas.

Como parte del ciclo de desarrollo de Windows Server 2012, se llevó a cabo una serie de pruebas de rendimiento para caracterizar las cargas de trabajo de IIS en términos de rendimiento. Esas pruebas se realizaron en un servidor HP DL980 G7 usando las instalaciones del Enterprise Engineering Center (EEC) de Microsoft, que es la instalación de validación de clientes de Microsoft para Windows Server.

Este documento técnico compila los resultados de un esfuerzo conjunto entre HP y el equipo de productos de IIS para evaluar las funcionalidades de rendimiento de IIS cuando se ejecuta en sistemas de 8 vías de HP. Este documento técnico también sirve como una guía de implementación que los clientes pueden usar para configurar IIS en estos sistemas.

El problema del cliente

Por lo general, un aumento del número de núcleos debe resultar en un mayor rendimiento. Cuando los clientes de IIS implementaron sus aplicaciones en hardware de acceso a memoria no uniforme (NUMA) con Windows Server 2008 R2, observaron que, a partir de cierto punto, el aumento de núcleos producía una degradación del rendimiento. Esto se debía a que el costo de la sincronización de la memoria del software superaba las ventajas de los núcleos adicionales en el hardware NUMA. IIS 8.0 en Windows Server 2012 soluciona este problema mediante la distribución inteligente de la afinidad de subprocesos para los procesos en el hardware NUMA, y esta prueba de concepto ha permitido identificar el ajuste de E/S de red y del sistema operativo necesario para garantizar la escalabilidad óptima de IIS 8.0.

IIS 8.0

Internet Information Services (IIS) en Windows Server 2012 está habilitado para NUMA y proporciona la configuración óptima para los administradores de TI. En la sección siguiente se describe cómo IIS 8.0 aprovecha el hardware NUMA para proporcionar un rendimiento óptimo.

IIS admite dos maneras de crear particiones de la carga de trabajo:

  1. Ejecute varios procesos de trabajo en un grupo de aplicaciones (como un jardín web).
    Si usa este modo, el grupo de aplicaciones está configurado para ejecutarse de forma predeterminada en un único proceso de trabajo. Para obtener el rendimiento máximo, considere la posibilidad de ejecutar el mismo número de procesos de trabajo que nodos NUMA, de modo que haya una afinidad 1:1 entre los procesos de trabajo y los nodos NUMA. Esto se puede hacer estableciendo el ajuste "Máximo de procesos de trabajo" del grupo de aplicaciones en 0. Cuando se configura este ajuste, IIS determina el número de nodos NUMA disponibles en el hardware e inicia el mismo número de procesos de trabajo.
  2. Ejecute varios grupos de aplicaciones en una sola carga de trabajo o un solo sitio.
    En esta configuración, la carga de trabajo o el sitio se dividen en varios grupos de aplicaciones. Por ejemplo, el sitio puede contener varias aplicaciones configuradas para ejecutarse en grupos de aplicaciones independientes. De hecho, esta configuración da como resultado la ejecución de varios procesos de trabajo de IIS para la carga de trabajo o el sitio, e IIS distribuye inteligentemente la afinidad de los procesos para obtener el máximo rendimiento.

En función de la carga de trabajo, el administrador divide la carga de trabajo en varios procesos de trabajo. Una vez que se divide correctamente una carga de trabajo en particiones, IIS 8.0 identifica el nodo NUMA más óptimo cuando el proceso de trabajo de IIS está a punto de iniciarse. De forma predeterminada, IIS elige el nodo NUMA con la más memoria disponible. IIS conoce el consumo de memoria de cada nodo NUMA y usa esta información para "equilibrar la carga" de los procesos de trabajo de IIS. Esta opción es diferente del método round-robin predeterminado de Windows y está diseñada específicamente para la carga de trabajo de IIS.

Por último, hay dos maneras diferentes de configurar la afinidad para los subprocesos desde un proceso de trabajo de IIS a un nodo NUMA.

  1. Afinidad suave (predeterminada)
    Con la afinidad suave, si otros nodos NUMA tienen ciclos disponibles, los subprocesos de un proceso de trabajo de IIS se pueden programar en un nodo NUMA que no se configuró para la afinidad. Este enfoque ayuda a maximizar todos los recursos disponibles en el sistema en conjunto.
  2. Afinidad forzada
    Con la afinidad forzada, independientemente de cuál sea la carga en otros nodos NUMA del sistema, todos los subprocesos de un proceso de trabajo de IIS se asignan al nodo NUMA elegido que se seleccionó para la afinidad mediante el diseño anterior.

Aunque la afinidad forzada puede proporcionar un mejor rendimiento general, la configuración de esta afinidad requiere más pasos de configuración y una comprensión más profunda del hardware. Además, si se configura incorrectamente, también da como resultado un rendimiento más bajo. Por lo tanto, la configuración predeterminada es la afinidad suave.

Plataforma HP

Información sobre HP DL980 G7

DL980 G7 es el primer servidor de escalado vertical de HP Proliant con 8 sockets de procesador que usa la arquitectura HP PREMA e incorpora controladores de nodo con almacenamiento inteligente en la caché de CPU y una estructura de sistema redundante. La primera iteración de los servidores DL980 G7 usaba procesadores Intel® Xeon® 7500/6500 (conocidos como Nehalem-EX, de 4, 6 y 8 núcleos de SKU), 128 sockets DIMM y 16 ranuras PCIe. La segunda versión admite procesadores Intel® Xeon® E7-8800/4800/2800 (conocidos como Westmere-EX) de hasta 10 núcleos de SKU. Gracias a la configuración actual de Intel Nehalem-EX con 8 procesadores, cada uno con 8 núcleos y con tecnología Hyper-Threading habilitada, Windows Server 2008 R2 permite un total de 128 procesadores lógicos y proporciona compatibilidad máxima con un sistema operativo de 2 TB de RAM y 16 ranuras PCIe. Con los procesadores Intel Westmere-EX de 10 núcleos de SKU y tecnología Hyper-Threading habilitada, Windows Server 2008 R2 permite un total de 160 procesadores lógicos para el servidor DL980 G7. Y actualmente, Windows Server 2012 habilita los 4 TB de RAM que admite esta plataforma.

Las funcionalidades de rendimiento y escalabilidad de estos servidores basados en Intel de 8 vías con controladores de nodos de escalabilidad de HP superan cualquier cosa que haya existido anteriormente en Intel/AMD e iguala o supera el rendimiento de muchas plataformas UNIX, y a un precio considerablemente menor que estas. Además, según Gartner y otros analistas del sector, estos nuevos procesadores Nehalem-EX y Westmere-EX son casi iguales que las plataformas UNIX en lo que respecta a su conjunto de características de confiabilidad, disponibilidad y capacidad de servicio (RAS).

La instalación y configuración de un servidor HP DL980 difiere de los servidores SMP anteriores más sencillos en varios aspectos:

  • La colocación de las tarjetas PCIe, como HBA y tarjetas de red, es fundamental.
  • Los controladores de dispositivos deben ser compatibles con Windows KGROUP y NUMA.

Aunque la compatibilidad con servidores de escalado vertical se ha mejorado considerablemente en Windows Server 2012, las versiones anteriores del sistema operativo y las aplicaciones Windows deben tener las versiones y los parches correctos para admitir completamente la plataforma DL980 G7 y poder escalarla.

Dado que Windows x64 Server y sus cargas de trabajo de usuario usan configuraciones con 8 o más sockets, la configuración o el uso incorrectos de estas plataformas, como HP DL980 G7, pueden dar lugar a importantes disminuciones del rendimiento. Con esta configuración de 8 procesadores, es posible que los controladores de dispositivos incorrectos o las aplicaciones que no son compatibles con NUMA no ofrezcan las mejoras de escalabilidad que espera el usuario. Entre los problemas típicos que podrían producirse se incluye la inundación de las transacciones no escalables que interconectan QPI, el centro de E/S y los conjuntos de chips PREMA.

Los equipos de Microsoft SQL Server, SAP e IIS han probado, implementado y comparado sus productos en DL980 G7, y han obtenido excelentes resultados. El servidor HP DL980 G7 y otros sistemas de 8 procesadores han mostrado excelentes resultados no solo como servidores de bases de datos, sino ahora también como servidores de Internet Information Services.

En la ilustración siguiente se muestra el diagrama de bloques de DL980 G7 y se proporciona para ayudar al lector a medida que sigue las diferentes opciones de configuración y ajuste que se presentan en los párrafos siguientes:

Diagram of the D L 980 G 7 configuration.

Opciones de configuración:

El servidor DL980 G7 se distribuye en una variedad de configuraciones: hay disponibles modelos de 4 y 8 sockets de procesador. Además, hay varias configuraciones diferentes para ranuras de expansión PCI. Estas configuraciones se documentan en la Guía de referencia técnica de HP para DL980.

A lo largo de este documento, nos referimos a los procesadores tal y como los reconoce y los describe Windows, es decir, procesadores de 0 a 7 y nodos NUMA de 0 a 7.

Photo of the upper and lower processor trays on the D L 980 G 7.

DL980 G7 tiene dos "bandejas". La bandeja superior contiene los procesadores de 0 a 3 y controla directamente las placas de E/S principales y secundarios. La bandeja inferior contiene los procesadores de 4 a 7 y controla la placa de E/S "opcional" o de perfil bajo.

DL980 G7 tiene tres placas de E/S:

Diagram of the I/O expansion slot options on the D L 980 G 7.

  1. Placa PCI principal: está conectada directamente a los procesadores 0 y 1 y proporciona 5 ranuras de E/S PCIe Gen 2 [2 (x8) y 3 (x4) conectores eléctricos] adecuadas para dispositivos PCI de gran ancho de banda, como tarjetas HBA, NIC y FusionIO/SSD de altura completa. También conecta los dispositivos insertados, como la tarjeta LAN On Motherboard (LOM -NC375i), dispositivos de vídeo, el controlador de disco interno (Smart Array P410i), DVD SATA, puertos USB, etc.
  2. Placa PCI de E/S secundaria (opcional): está conectada directamente a los procesadores 2 y 3 y proporciona 5 ranuras PCIe Gen2 [4 (x8) y 1 (x4) conectores eléctricos] y 1 ranura PCIe Gen 1 (x4) con id. 1 (opcionalmente una ranura PCI-X, no recomendada) adecuada para dispositivos de gran ancho de banda y altura completa.
  3. Placa de E/S de bajo perfil (LP): está conectada directamente a los procesadores 4 y 5 y proporciona 4 ranuras PCIe x8 y 1 ranura PCIe x4. Estas ranuras son solo de altura media, las tarjetas de red y HBA más recientes incluyen un panel frontal de bajo perfil que puede reemplazar el panel frontal estándar para adaptarse a ranuras de altura media.

RAM

El servidor DL980 G7 tiene procesadores extremadamente potentes, cada uno con dos controladores de memoria, y puede ofrecer un rendimiento de E/S excepcional cuando se configura correctamente. La plataforma está configurada de tal forma que los accesos a la memoria se reparten uniformemente entre los dos controladores de memoria de cada procesador. Para garantizar un diseño de sistema "equilibrado", recomendamos configurar al menos 512 GB de RAM, las implementaciones más típicas tenían 1 TB de RAM en mayo de 2011. Un servidor DL980 G7 con menos de 512 GB-1 TB de RAM probablemente nunca pueda aprovechar los potentes procesadores debido a una RAM insuficiente. La mayoría de los clientes observarán una disminución significativa de E/S por segundo y una enorme mejora tanto en el rendimiento de E/S como en el escalado con Windows Server 2012 gracias a un aumento de la compatibilidad de E/S con NUMA y a mejoras del escalado de NUMA en esta versión del sistema operativo Windows.

Tenga en cuenta los siguientes datos de configuración de la memoria:

  • Solamente módulos DIMM DDR3.

  • Cada procesador se conecta a 2 elevadores de memoria, y cada elevador admite 1 controlador de memoria y 8 conectores DIMM.

  • Solo admite DIMM registrados (RDIMM). No se admiten DIMM sin búfer (UDIMM).

    • Los módulos de carga reducida o DDR3L solo se admiten con procesadores Westmere-EX.
  • Admite módulos DIMM de rango único (SR), de doble rango (DR) y de rango cuádruple (QR).

  • Los procesadores Nehalem-EX admiten tecnologías de DRAM de 1 GB y 2 GB, mientras que los procesadores Westmere-EX también admiten 4 GB.

  • Los DIMM se agregan de cuatro en dos controladores de memoria.

  • Admite ECC (código de corrección de errores) avanzado, la reserva de rangos en línea y la creación de reflejos.

  • La compatibilidad con memoria ECC incluye la corrección de errores de chips x4 y x8.

Red

  • Los adaptadores de red de gigabit se recomiendan como estándar. Es muy probable que los adaptadores de red de 1 gigabit produzcan un cuello de botella en estos sistemas potentes.
  • Reduzca el número total de adaptadores de red necesarios para lograr el rendimiento de red necesario.
  • Los adaptadores de red de 10 gigabits han mejorado significativamente los controladores de dispositivos y las opciones de configuración de dichos controladores.
  • La tarjeta de red HP NC550SFP (Intel) de 10 Gb se ha probado y ha mostrado un rendimiento muy alto; requiere una ranura PCIe x8 en las placas de E/S principal o secundaria para alcanzar el máximo rendimiento.
  • Los servidores HP DL980 admiten hasta 4 tarjetas NIC de 10 GbE, como NC550SFP y NC523SFP (consulte los documentos de QuickSpecs de HP DL980 para obtener información actualizada), con un máximo de 8 puertos de 10 GbE.
  • Con fines de equilibrio de carga, las tarjetas de 10 gigabits se pueden equilibrar entre las placas de E/S principal y secundaria. (Por ejemplo: 2 tarjetas NIC de 2 puertos de 10 Gb en la placa principal y 2 tarjetas de 2 puertos de 10 Gb en la placa de E/S secundaria).
  • Como el lector verá en el documento sobre escalado de IIS, se recomienda habilitar el Ajuste de escala en lado de recepción (RSS) en los adaptadores de red más modernos y en los controladores de dispositivos modernos. Los adaptadores de red de 1 gigabit normalmente solo admiten hasta 8 "anillos" o "colas" de RSS. Los adaptadores de 10 gigabits admiten al menos 16 anillos/colas. El ajuste de escala en lado de recepción es un mecanismo para equilibrar la descarga de DPC en varios procesadores lógicos. Esto evita el problema que a veces se observa durante una actividad de red extremadamente alta en la que solo se ve un tiempo de kernel alto en un procesador (a menudo el procesador lógico 0 o 1, pero no siempre). Nota: La implementación de RSS para Windows Server 2008 R2 solo cubre los procesadores lógicos en el primer KGROUP de procesadores de Windows (KGROUP#0), pero esta restricción se ha eliminado con Windows Server 2012 y varios controladores de bandeja de entrada admiten esto en la primera instalación.

HBA y E/S

  • Para las aplicaciones de E/S de almacenamiento elevado, instale al menos 2 tarjetas HBA de doble puerto, las configuraciones más comunes son 4 tarjetas HBA de doble puerto.
  • Es importante que todos los puertos HBA estén conectados y activos. Si el software E/S de múltiples rutas debe instalarse y configurarse correctamente. El equilibrio de carga automático (ALB) se recomienda para la SAN de la serie HP EVA.
  • Las distintas tarjetas HBA tienen diferentes configuraciones y los distintos modelos de SAN tienen diferentes funcionalidades, pero como guía general se recomienda lo siguiente:
  • Emulex: establezca la profundidad de cola de HBA en aproximadamente 64-254 en "OC Manager/HBA Anywhere" en la mayoría de las configuraciones.
  • QLogic: establezca el regulador de carga de trabajo de ejecución en 64-96 en "SanSurfer".
  • Brocade: la profundidad de cola se documenta en la Guía de administración de Brocade.
  • Las tarjetas HBA deben colocarse en todos los 3 centros de E/S según las características de su interfaz PCIe. Siempre tendemos a colocar una tarjeta que admita x8 en una ranura x8 para beneficiarnos de sus características completas y equilibrar la carga en todo el sistema.

Observación importante sobre los dispositivos FusionIO (aplicable generalmente a otras tarjetas SSD):

FusionIO (placas de aceleración de E/S de HP) y OCZ proporcionan acceso ultrarrápido (hasta 10 000 veces más rápido que los discos mecánicos). Hasta ahora, solo se han realizado pruebas exhaustivas con tarjetas FusionIO. Los resultados son excepcionales si se tiene en cuenta los siguiente:

  • Como mínimo, use el controlador de dispositivo FusionIO 2.2.3 o una versión posterior compatible con K-Group (disponible en el sitio web de FusionIO).

  • Coloque la tarjeta FusionIO solo en la placa de E/S principal o secundaria (no son tarjetas de perfil bajo). Las ranuras de E/S recomendadas son: 3, 5, 9 y 11.

  • Si usa más de 4 aceleradores de E/S de HP, se deben realizar modificaciones en el BIOS para permitir más refrigeración y debe considerar la posibilidad de usar cables de alimentación externos o la característica de reemplazo de energía de FusionIO con VSL 3.x y permitir que la potencia adicional se obtenga de la ranura PCIe.

  • La pila de FusionIO actual sigue necesitando mejoras de escalabilidad y FusionIO sigue trabajando en ellas. Mientras tanto, tenga en cuenta que con un mayor número de tarjetas de FusionIO en este sistema, hemos alcanzado más de 1 millón de E/S por segundo y más de 16 GB/s. Con la implementación actual del controlador de FusionIO, es posible que observe lo siguiente:

    • Un uso muy elevado del procesador en un subconjunto de los procesadores lógicos. Esto está relacionado con el hecho de que las tarjetas HBA actuales de FusionIO no admiten MSI-X y cada HBA envía interrupciones a un único procesador lógico. Además, la implementación actual solo admite un subproceso de trabajo de finalización de DPC y FusionIO para cada HBA. Para cargas de trabajo de E/S de escalado muy exigentes, casi se espera que el usuario identifique estos procesadores lógicos comprobando los usos de la CPU del 100 % o casi del 100 % en estos procesadores lógicos específicos. FusionIO ha puesto a disposición parámetros de configuración para mitigar esto parcialmente al permitir especificar qué procesadores lógicos se dedicarán a estas tareas. En estos tiempos de CPU de E/S elevados, puede usar una máscara de afinidad en el nivel de aplicación para evitar estos procesadores lógicos.
    • Desequilibrios en el rendimiento de E/S. El mejor rendimiento de E/S se obtiene mediante la generación de solicitudes de lectura y escritura en el mismo socket donde se ejecuta el subproceso de finalización de FusionIO. El BIOS de DL980 G7 proporciona acceso a memoria no uniforme de E/S al sistema operativo Windows y sus componentes de E/S: storport y ndis/netio para que sus minipuertos los usen y ajusten.
    • Modificaciones en el rendimiento debido al impacto de la limpieza de SSD; un problema detectado con generaciones anteriores y actuales de SSD.

BIOS

Se recomienda cambiar los siguientes valores predeterminados en el BIOS de DL980 G7 para IIS:

NOMBRE DEL AJUSTE CONFIGURACIÓN RECOMENDADA CONFIGURACIÓN PREDETERMINADA
Perfil de energía de HP Personalizado (Valor predeterminado: Energía y rendimiento equilibrados)
Regulador de energía de HP Modo de control del sistema operativo (Valor predeterminado: Modo dinámico de ahorro de energía de HP)
Hyper-Threading del procesador Consulte el párrafo que aparece más abajo sobre el tipo de cargas de trabajo de IIS 8.0 y el impacto de la tecnología Hyper-Threading. Habilitado
Estado inactivo con consumo mínimo de energía del procesador Sin estados C (sin ahorro de energía del procesador) o C1e (para seguir ahorrando energía del procesador y obtener un rendimiento adecuado) (Valor predeterminado: Estado C6)
Limitación de la alimentación de la memoria Deshabilitado (Valor predeterminado: Habilitado)
Control de energía colaborativa Deshabilitado (Valor predeterminado: Habilitado)
Modo de tabla MPS APIC de tabla completa (predeterminado).
Modo de dirección de 44 bits Habilitado (Valor predeterminado: Deshabilitado)
Configuración térmica Aumento de la refrigeración o incluso "ventiladores máximos", si se usa una gran cantidad de tarjetas HBA de FusionIO o de aceleradores de E/S de HP. (Refrigeración óptima)
Depuración de Windows: Estado de la ASR (deshabilitado cuando no hay ningún depurador asociado) Deshabilitado si el depurador del sistema operativo está asociado. (Valor predeterminado: Habilitado)
Depuración de Windows: CLI de iLO (desde la sesión de iLO) Deshabilitado si el depurador del sistema operativo está asociado. (Valor predeterminado: Habilitado)

Con las plataformas DL980 G7, Windows Server 2012 cambiará automáticamente los procesadores y los centros de E/S en modo x2APIC y con el modo de entrega de interrupción física. Para habilitar x2APIC con Windows Server 2008 R2 SP1 para mejorar el escalado de E/S, es necesario instalar varias QFE de Windows en la plataforma y un comando BCDEDIT opcional para ejecutar. La habilitación de x2APIC y la especificación de las QFE se explican en Microsoft Knowledge Base.

Firmware

Es fundamental que el firmware de los componentes siguientes se actualice a la versión más reciente disponible, por ejemplo, muchas mejoras de NUMA de E/S se agregaron en la versión de octubre de 2012.

  • Sistema DL980 G7
  • Tarjetas HBA
  • Tarjetas de red
  • Tarjetas FusionIO (si se usan)

Se recomienda encarecidamente comprobar el firmware de estos componentes en el sitio web de soporte técnico de HP DL980.

Versiones y configuración de Windows

Como parte de su oferta de misión crítica para los clientes de Windows, HP tiene un CD de QFE de actualización inteligente para configurar y ajustar automáticamente Windows con las QFE de Microsoft más importantes y más recientes: https://www.hpe.com/us/en/servers/smart-update.html. Estas actualizaciones y ajustes se han implementado con Microsoft y se han validado en el laboratorio de HP DL980. HP recomienda a sus clientes que ejecuten estas actualizaciones.

  • Windows Server 2012: la configuración de IIS para el modo kernel, la administración de caché, la administración de solicitudes y conexiones, y el modo usuario no han cambiado respecto a los de Windows Server 2008 R2. Consulte los ajustes específicos de IIS descritos en el documento Directrices de optimización del rendimiento para Windows Server 2008 R2. .
  • Para Windows 2008 R2, se recomienda SP1 o una versión superior. Service Pack 1 contiene muchas correcciones de rendimiento críticas para la compatibilidad con más de 64 procesadores lógicos.
  • Windows 2008 no admite el direccionamiento de 44 bits correctamente y no debe instalarse en DL980 G7. Si por algún motivo Windows 2008 (no R2) se implementa en DL980, tanto la tecnología Hyper-Threading como la memoria de 44 bits deben deshabilitarse. De este modo, el sistema se limita a 64 procesadores lógicos y 1 TB de RAM. Windows Server 2008 SP2 es la única versión de servidor compatible con Windows Server 2008 en HP DL980 G7. Si Windows Server 2008 sigue siendo necesario, consulte el sitio web de soporte técnico de HP para obtener la lista completa de QFE de Windows para Windows Server 2008 SP2 en HP DL980 G7.

Metodología de prueba

Escenario de prueba

El objetivo de esta prueba es probar la escalabilidad del servidor IIS, al tiempo que se aumenta el número de núcleos o sockets de CPU en hardware compatible con NUMA:

  • Se usa una página de prueba dinámica de ASP.net simple como contenido del sitio web.
  • La Herramienta de análisis de capacidad web (WCAT) se usa para generar solicitudes HTTP.
  • Una utilidad HP Core Disable se usa para reducir verticalmente el servidor deshabilitando el núcleo y los sockets de CPU, respetando la configuración de E/S.

El entorno de prueba muestra cómo se escala la aplicación web ASP.NET en un servidor con hardware NUMA que ejecuta IIS 8.0. El objetivo es estresar el servidor para determinar el número de solicitudes por segundo en las que se procesa la implementación con un uso de CPU del 100 %, o casi del 100 %.

Se usó la siguiente configuración para medir el rendimiento de IIS:

  1. Jardín web (1xN): un único grupo de aplicaciones, un proceso por socket. Esto representa un escenario empresarial en el que es necesario escalar verticalmente una sola aplicación.
  2. Hospedaje (Nx1): un grupo de aplicaciones por socket, un proceso por grupo de aplicaciones. Esto representa un escenario de hospedaje donde varias aplicaciones se hospedan en un solo servidor.
  3. Predeterminado (1x1): un grupo de aplicaciones y un proceso independientemente del número de sockets. Esto representa la configuración lista para usar.

Las pruebas se repitieron para 20/40/80 núcleos (2/4/8 sockets de procesador). También realizamos pruebas adicionales para 180 núcleos (con tecnología Hyper-Threading habilitada) para ver cómo IIS se beneficia de HT.

Configuración de prueba

Servidores

Se usaron un total de 6 máquinas para realizar las pruebas.

  • 4 máquinas como clientes WCAT (configuración de WCAT: 100 clientes virtuales por cliente físico)
  • 1 máquina como controlador WCAT
  • 1 máquina HP DL980 G7 como servidor IIS 8.0

Redes

El entorno de prueba se configuró con cuatro máquinas cliente y un servidor. Cada una de las máquinas cliente usó cuatro NIC de 1 Gb. El servidor usó 16 NIC de 1 Gb. Se configuraron 16 subredes, emparejando cada NIC de cliente con una NIC de servidor única.

Configuración de RSS

El rendimiento de las redes en el servidor se ha optimizado mediante la configuración de RSS.

Para garantizar que el tráfico recibido en una NIC determinada se procese mediante un núcleo en el mismo centro de E/S que la NIC, cada NIC se asoció a un nodo NUMA en el mismo centro de E/S mediante el parámetro NumaNode.

El número total de colas de RSS en todas las NIC se igualó al número total de procesadores lógicos en la máquina. Para ello, se estableció NumberOfReceiveQueues para cada NIC.

Las colas de RSS de cada NIC se asignaron a un conjunto específico de núcleos en su nodo NUMA asignado mediante los parámetros BaseProcessorNumber y MaxProcessors.

Resultados

El gráfico siguiente captura cómo cambia el rendimiento de IIS (número de solicitudes procesadas por segundo) con un aumento en los núcleos de CPU.

Aumento del número de núcleos de CPU de 20 a 40 (de 2 sockets a 4 sockets):

Los 20 núcleos se toman como línea de base. Cuando el número de CPU aumentó de 20 a 40, observamos un aumento del 67 % en la solicitud procesada en el escenario de hospedaje web, un aumento del 41 % en el escenario de jardín web y una disminución del 2 % en el escenario predeterminado. Esto indica que tanto los escenarios de hospedaje como de jardín web pueden beneficiarse más de un aumento de núcleos de CPU. La configuración predeterminada no puede aprovechar el aumento de CPU, ya que un solo proceso no se puede escalar para aprovechar el hardware NUMA.

Comparación entre 80 y 40 núcleos

Se observó una tendencia similar después de aumentar el número de núcleos de 40 a 80. El escenario de hospedaje pudo procesar un 64 % más de solicitudes y el escenario de jardín web procesó un 31 % más de solicitudes. El rendimiento de la configuración predeterminada disminuyó aún más en un 3 %.

A column chart comparing R P S scaling between C P U cores with 80 versus 40 cores.

Impacto de la tecnología Hyper-Threading

Después de habilitar la tecnología Hyper-Threading, la configuración de hospedaje procesó un 18 % más de solicitudes. La configuración de jardín web procesó un 4 % menos de solicitudes, mientras que la configuración predeterminada procesó un 3 % más de solicitudes. Normalmente, la tecnología HT puede mejorar el rendimiento hasta en un 20 %. La configuración de hospedaje puede aprovechar al máximo la tecnología HT.

A column chart comparing the results of enabling Hyperthreading.

Resumen

IIS 8.0 es compatible con hardware NUMA y es capaz de escalar positivamente en hardware NUMA a diferencia de las versiones anteriores de IIS.

El rendimiento de IIS 8.0 aumentó en un 67 % al incrementar los sockets de CPU de 2 a 4, y aumentó un 64 % más al incrementar los sockets de CPU de 4 a 8. La habilitación de la tecnología Hyper-Threading aumentó el rendimiento en un 18 % adicional.

HP Proliant DL980-G7 proporciona una plataforma sólida para implementar aplicaciones IIS exigentes, ofreciendo escalabilidad de aplicaciones con una solución de consolidación de servidores en una plataforma con una mayor confiabilidad, disponibilidad y capacidad de servicio de HW.

Los clientes que buscan escalar sus implementaciones de IIS deben considerar la posibilidad de implementar IIS en hardware compatible con NUMA y beneficiarse de las opciones de escalado vertical y horizontal.

Se están considerando más caracterizaciones de IIS 8.0 con la implementación de HyperV Server 2012 en HP DL980-G7, y estos resultados también se compartirán.

Apéndice

PowerShell

Fondo

Tradicionalmente, cada procesador de un sistema de varios sockets accede a la memoria y a E/S a través del mismo bus. Es cada vez más común que los sistemas a gran escala usen NUMA (acceso a memoria no uniforme) para evitar cuellos de botella a nivel de bus. En este modelo, diferentes partes de E/S y memoria están conectadas a diferentes sockets, lo que significa que el rendimiento de las operaciones de E/S y memoria se ve afectado por la proximidad del socket a algunas partes de memoria y E/S.

El ajuste de escala en lado de recepción (RSS) permite el procesamiento de la recepción de red por varios procesadores.

Configuración de la afinidad de RSS

A partir de Windows Server 2012, es posible configurar la afinidad de RSS con un nodo NUMA determinado mediante PowerShell. El equipo de redes principales ha hecho un gran trabajo para proporcionar un conjunto de cmdlets que brindan control total sobre la pila de RSS.

Más concretamente, la afinidad de NUMA se puede configurar mediante el siguiente cmdlet: Set-NetAdapterRSS. Este cmdlet toma algunos parámetros relacionados con la topología del hardware del servidor. Los parámetros son: BaseProcessorGroup, BaseProcessorNumber, MaxProcessors y NumaNode.

Hay dos maneras de recopilar los valores de estas propiedades: de forma manual y mediante PowerShell.

Para configurar correctamente los ajustes de afinidad de NUMA, es crucial identificar la conexión física de un adaptador de red a un nodo NUMA determinado.

Recopilación manual de la información sobre la topología

Actualmente, este proceso consta de los pasos siguientes:

  1. Busque el adaptador de red de destino en Panel de control\Red e Internet\Conexiones de red. La propiedad de interés para el siguiente paso es "Nombre del dispositivo", como se muestra en la captura de pantalla siguiente.
    Screenshot of the Network Connections tab in the Control Panel. The device name field is highlighted.
  2. Busque la tarjeta NIC en el Administrador de dispositivos. Para ello, usamos la propiedad "Nombre del dispositivo" recopilada en el paso anterior.
    Screenshot of the Server Manager Window on the Device Manager tab. The device name is highlighted in the expanded menu.
  3. Invoque el cuadro de diálogo de propiedades para la NIC especificada. En la pestaña "General" se mostrarán los números de ranuras, dispositivos y funciones de una NIC determinada.
    Screenshot of the Properties dialog box on the General tab. The Location output is highlighted.
  4. Con la información del bus a mano, es posible identificar a qué nodo NUMA está conectada la NIC mediante la correlación de esta información con el diagrama de topología del hardware, tal como se indica en la sección de hardware anterior.
Recopilación de la topología del hardware mediante PowerShell

La información sobre la topología del hardware que se puede usar para establecer los valores de afinidad de RSS correctos se puede obtener usando el ejemplo de cmdlets de PowerShell para la Administración de dispositivos que está disponible en la Galería de TechNet (https://gallery.technet.microsoft.com/Device-Management-7fad2388). En este ejemplo se proporcionan cmdlets para enumerar, controlar y administrar dispositivos.

Actualmente, el módulo trata los siguientes cmdlets:

  • Get-Device
  • Get-Driver
  • Get-Numa
  • Enable-Device
  • Disable-Device
Enumeración de dispositivos e información sobre la topología NUMA

Get-Device | Sort-Object -Property Name | ft Name, NumaNode, UINumber -AutoSize

Información del procesador lógico y de NUMA

Get-Numa

Tablas de firmware

$hardwareTopology = Get-Numa; $hardwareTopology

WCAT

Web Capacity Analysis Tool (WCAT) es una herramienta ligera de generación de carga de HTTP diseñada principalmente para medir el rendimiento de un servidor web en un entorno controlado. WCAT puede simular miles de usuarios simultáneos que realizan solicitudes a un único sitio web o a varios sitios web.

Se puede descargar en: https://www.iis.net/downloads/community/2007/05/wcat-63-(x86).

Acerca de

Grupo de productos de IIS

El equipo de IIS de Microsoft es responsable de distribuir el servidor IIS como parte de Windows Server. Este equipo también publica y mantiene varios productos relacionados que se pueden encontrar en https://www.iis.net/downloads.

Hewlett-Packard (HP)

Hewlett-Packard Company (HP) es una multinacional estadounidense de tecnologías de la información con sede en Palo Alto (California, Estados Unidos). Proporciona productos, tecnologías, software, soluciones y servicios a consumidores, a pequeñas y medianas empresas, y a grandes empresas, incluidos clientes gubernamentales y de los sectores de la salud y la educación. HP es la empresa líder mundial en ventas y unidades de Microsoft Windows (según el informe "Worldwide Quarterly Server Tracker" de IDC de 2012, agosto de 2012). Dentro de su división HP Business Critical Server, el laboratorio de ingeniería crítica de Windows lleva más de una década ofreciendo soluciones sólidas de Microsoft Windows y SQL Server como resultado de un esfuerzo de ingeniería conjunto. Con este proyecto de escalado de IIS, el equipo ha trabajado estrechamente con el equipo de Microsoft IIS para garantizar una escalabilidad y un rendimiento óptimos.

EEC

El Enterprise Engineering Center (EEC) de Microsoft debe su existencia a una idea sencilla: el deseo de proporcionar a los clientes de Microsoft el mejor laboratorio de validación y colaboración.

El EEC está equipado con hardware de primera clase y cuenta con un increíble equipo de expertos apasionados. Dado que estamos ubicados en el campus de Redmond (en el centro neurálgico de los equipos de desarrollo de productos de Microsoft), podemos reunir a los clientes, partners e ingenieros del grupo de productos de Microsoft para validar las soluciones empresariales del futuro.