Optimización del rendimiento para hosts de sesión de Escritorio remoto

En este tema, se describe cómo seleccionar el hardware del host de sesión de Escritorio remoto (host de sesión de RD), optimizar el host y optimizar las aplicaciones.

En este tema:

Selección del hardware adecuado para el rendimiento

Para la implementación de un servidor host de sesión de Escritorio remoto, la elección del hardware se rige por el conjunto de aplicaciones y cómo las utilizan los usuarios. Los factores clave que afectan al número de usuarios y su experiencia son la CPU, la memoria, el disco y los gráficos. Esta sección contiene instrucciones adicionales específicas de los servidores host de sesión de Escritorio remoto y está relacionada principalmente con el entorno multiusuario de los servidores host de sesión de Escritorio remoto.

Configuración de CPU

La configuración de CPU se determina conceptualmente multiplicando la CPU necesaria para admitir una sesión por el número de sesiones que se espera que admita el sistema, además de mantener una zona de búfer para controlar los picos temporales. Varios procesadores lógicos pueden ayudar a reducir situaciones anómalas de congestión de la CPU, que suelen deberse a algunos subprocesos demasiado activos que están contenidos en un número similar de procesadores lógicos.

Por lo tanto, cuantos más procesadores lógicos haya en un sistema, menor será el margen de amortiguación que se debe crear en la estimación del uso de CPU, lo que da como resultado un porcentaje mayor de carga activa por CPU. Un factor importante que hay que recordar es que duplicar el número de CPU no duplica la capacidad de CPU.

Configuración de la memoria

La configuración de memoria depende de las aplicaciones que emplean los usuarios; sin embargo, la cantidad de memoria necesaria se puede calcular mediante la fórmula siguiente: Memoria total = OSMem + SessionMem * NS

OSMem es la cantidad de memoria que requiere el sistema operativo (como imágenes de archivos binarios del sistema, estructuras de datos, etc.), SessionMem es la cantidad de procesos de memoria que se ejecutan en una sesión y NS es el número objetivo de sesiones activas. La cantidad de memoria necesaria para una sesión viene determinada principalmente por el conjunto de referencias de memoria privada de las aplicaciones y los procesos del sistema que se ejecutan dentro de la sesión. El código compartido o las páginas de datos tienen poco efecto porque solo hay una copia en el sistema.

Una observación interesante (suponiendo que no cambia el sistema de disco que respalda el archivo de paginación) es que cuanto mayor es el número de sesiones activas simultáneas que el sistema planea admitir, mayor debe ser la asignación de memoria por sesión. Si la cantidad de memoria asignada por sesión no aumenta, el número de errores de página que generan las sesiones activas aumenta con el número de sesiones. Estos errores acaban sobrecargando el subsistema de E/S. Al aumentar la cantidad de memoria asignada por sesión, la probabilidad de incurrir en errores de página disminuye, lo que ayuda a reducir la tasa general de errores de página.

Configuración de discos

El almacenamiento es uno de los aspectos más pasados por alto al configurar servidores host de sesión de Escritorio remoto y puede ser la limitación más común en los sistemas que están implementados en el terreno.

La actividad de disco que se genera en un servidor host de sesión de Escritorio remoto típico afecta a las siguientes áreas:

  • Archivos del sistema y archivos binarios de aplicación

  • Archivos de paginación

  • Perfiles de usuario y datos de usuario

Lo ideal es que distintos dispositivos de almacenamiento respalden estas áreas. El uso de configuraciones RAID seccionadas u otros tipos de almacenamiento de alto rendimiento mejora aún más el rendimiento. Se recomienda usar adaptadores de almacenamiento con almacenamiento en caché de escritura con respaldo de baterías. Los controladores con almacenamiento en caché de escritura en disco ofrecen compatibilidad mejorada con las operaciones de escritura sincrónicas. Dado que todos los usuarios tienen un subárbol independiente, las operaciones de escritura sincrónicas son significativamente más comunes en un servidor host de sesión de Escritorio remoto. Los subárboles del Registro se guardan periódicamente en el disco mediante operaciones de escritura sincrónicas. Para habilitar estas optimizaciones, en la consola de administración de discos, abra el cuadro de diálogo Propiedades del disco de destino y, en la pestaña Directivas, active las casillas Habilitar caché de escritura en el disco y Desactivar el vaciado de caché de escritura de Windows en el dispositivo.

Configuración de red

El uso de red de un servidor host de sesión de Escritorio remoto incluye dos categorías principales:

  • El uso del tráfico de conexión del host de sesión de Escritorio remoto viene determinado casi exclusivamente por los patrones de dibujo que muestren las aplicaciones que se ejecutan dentro de las sesiones y el tráfico de E/S de los dispositivos redirigidos.

    Por ejemplo, las aplicaciones que controlan el procesamiento de texto y la entrada de datos consumen un ancho de banda aproximadamente de entre 10 a 100 kilobits por segundo, mientras que los gráficos enriquecidos y la reproducción de vídeo provocan aumentos significativos en el uso del ancho de banda.

  • Conexiones de back-end, como perfiles de itinerancia, acceso de aplicaciones a recursos compartidos de archivos, servidores de bases de datos, servidores de correo electrónico y servidores HTTP.

    El volumen y el perfil del tráfico de red son específicos de cada implementación.

Optimización de aplicaciones para el host de sesión de Escritorio remoto

La mayoría del uso de CPU en un servidor host de sesión de Escritorio remoto viene dado por las aplicaciones. Las aplicaciones de escritorio se suelen optimizar hacia la capacidad de respuesta con el objetivo de minimizar el tiempo que tarda una aplicación en responder a una solicitud de usuario. Sin embargo, en un entorno de servidor, es igualmente importante minimizar la cantidad total de uso de CPU necesaria para completar una acción para evitar que afecte negativamente a otras sesiones.

Tenga en cuenta las siguientes sugerencias al configurar las aplicaciones que se van a usar en un servidor host de sesión de Escritorio remoto:

  • Minimizar el procesamiento de bucles inactivos en segundo plano

    Algunos ejemplos típicos son desactivar la corrección gramatical y ortográfica en segundo plano, la indexación de datos para la búsqueda y el guardado en segundo plano.

  • Minimizar la frecuencia con la que una aplicación realiza una comprobación o actualización de estado.

    Deshabilitar estos comportamientos o aumentar el intervalo entre las iteraciones de sondeo y la activación del temporizador beneficia significativamente el uso de la CPU, ya que el efecto de estas actividades se amplifica rápidamente para muchas sesiones activas. Algunos ejemplos típicos son los iconos de estado de conexión y las actualizaciones de información de la barra de estado.

  • Minimizar la contención de recursos entre aplicaciones mediante la reducción de su frecuencia de sincronización.

    Algunos ejemplos de estos recursos son las claves del Registro y los archivos de configuración. Algunos ejemplos de componentes y características de las aplicaciones son el indicador de estado (como las notificaciones del shell), la indexación en segundo plano o la supervisión de cambios y la sincronización sin conexión.

  • Deshabilite los procesos innecesarios registrados para iniciarse con el inicio de sesión del usuario o con un inicio de sesión.

    Estos procesos pueden contribuir significativamente al costo del uso de CPU al crear una nueva sesión de usuario, que generalmente es un proceso intensivo en CPU y puede ser muy costoso en escenarios del inicio de la mañana. Utilice MsConfig.exe o MsInfo32.exe para obtener una lista de los procesos que se inician en el inicio de sesión del usuario. Para obtener información más detallada, puede usar Autoruns para Windows.

En cuanto al consumo de memoria, debe tener en cuenta lo siguiente:

  • Compruebe que no se reubiquen los archivos DLL cargados por una aplicación.

    • Los archivos DLL reubicados se pueden comprobar seleccionando la vista de DLL de proceso, como se muestra en la ilustración siguiente, mediante el Explorador de procesos.

    • Aquí, podemos ver que la biblioteca y.dll se ha reubicado porque x.dll ya ha ocupado su dirección base predeterminada y no estaba habilitado ASLR.

      relocated dlls

      Si se reubican los archivos DLL, es imposible compartir su código entre sesiones, lo que aumenta significativamente la superficie de una sesión. Se trata de uno de los problemas de rendimiento relacionados con la memoria más comunes en un servidor host de sesión de Escritorio remoto.

  • En el caso de las aplicaciones de Common Language Runtime (CLR), use Native Image Generator (Ngen.exe) para aumentar el uso compartido de páginas y reducir la sobrecarga de CPU.

    Cuando sea posible, aplique técnicas similares a otros motores de ejecución similares.

Parámetros de ajuste del host de sesión de Escritorio remoto

Archivo de paginación

Un tamaño insuficiente del archivo de paginación puede provocar errores de asignación de memoria en las aplicaciones o los componentes del sistema. Puede usar el contador de rendimiento de bytes de memoria a confirmar para supervisar la cantidad de memoria virtual confirmada en el sistema.

Antivirus

La instalación de software antivirus en un servidor host de sesión de Escritorio remoto afecta considerablemente al rendimiento general del sistema, especialmente al uso de CPU. Se recomienda excluir de la lista de supervisión activa todas las carpetas que contienen archivos temporales, especialmente aquellos que generan los servicios y otros componentes del sistema.

Programador de tareas

El Programador de tareas permite examinar la lista de tareas programadas para los diferentes eventos. Para un servidor host de sesión de Escritorio remoto, resulta útil centrarse específicamente en las tareas que están configuradas para ejecutarse en modo inactivo, en el inicio de sesión del usuario o en la conexión y desconexión de la sesión. Debido a los detalles de la implementación, es posible que muchas de estas tareas no sean necesarias.

Iconos de notificación del escritorio

Los iconos de notificación del escritorio pueden tener mecanismos de actualización bastante costosos. Para deshabilitar las notificaciones, quite el componente que las registra de la lista de inicio o cambie la configuración en las aplicaciones y los componentes del sistema para deshabilitarlas. Puede usar Personalizar iconos de notificaciones para examinar la lista de notificaciones que están disponibles en el servidor.

Compresión de datos del Protocolo de escritorio remoto

La compresión del protocolo de Escritorio remoto se puede configurar mediante la directiva de grupo en Configuración del equipo>Plantillas administrativas>Componentes de Windows>Servicios de Escritorio remoto>Host de sesión de Escritorio remoto>Entorno de sesión remota>Configurar la compresión de datos de RemoteFX. Hay tres valores posibles:

  • Optimizado para usar menos memoria Consume la menor cantidad de memoria por sesión, pero tiene la relación de compresión más baja y, por tanto, el mayor consumo de ancho de banda.

  • Equilibra la memoria y el ancho de banda de red Consumo de ancho de banda reducido, al tiempo que aumenta marginalmente el consumo de memoria (aproximadamente 200 KB por sesión).

  • Optimizado para usar menos ancho de banda de red Reduce aún más el uso del ancho de banda de red a un costo de aproximadamente 2 MB por sesión. Si desea usar esta configuración, debe evaluar el número máximo de sesiones y probar a ese nivel con esta configuración antes de poner el servidor en producción.

También puede optar por no usar un algoritmo de compresión de Protocolo de escritorio remoto, por lo que solo se recomienda usarlo con un dispositivo de hardware diseñado para optimizar el tráfico de red. Incluso si decide no usar un algoritmo de compresión, se comprimirán algunos datos de gráficos.

Redireccionamiento de dispositivos

El redireccionamiento de dispositivos se puede configurar mediante la directiva de grupo en Configuración del equipo>Plantillas administrativas>Componentes de Windows>Servicios de Escritorio remoto>Host de sesión de Escritorio remoto>Redirección de dispositivo o recurso o mediante el cuadro de propiedades Colección de sesiones de Administrador del servidor.

Por lo general, el redireccionamiento de dispositivos aumenta el ancho de banda de red que usan las conexiones del servidor host de sesión de Escritorio remoto porque los datos se intercambian entre los dispositivos de los equipos cliente y los procesos que se ejecutan en la sesión del servidor. La extensión del aumento es una función de la frecuencia de las operaciones que realizan las aplicaciones que se ejecutan en el servidor con los dispositivos redirigidos.

El redireccionamiento de impresoras y el redireccionamiento de dispositivos Plug and Play también aumenta el uso de CPU en el inicio de sesión. Puede redirigir impresoras de dos maneras:

  • Redirección basada en un controlador de impresora coincidente cuando se debe instalar un controlador para la impresora en el servidor. Las versiones anteriores de Windows Server usaban este método.

  • A partir de Windows Server 2008, el redireccionamiento del controlador de impresora Easy Print usa un controlador de impresora común para todas las impresoras.

Se recomienda el método Easy Print porque provoca menos uso de CPU para la instalación de impresoras en el momento de la conexión. El método de controlador coincidente provoca un mayor uso de CPU porque requiere que el servicio de colas cargue otros controladores. Para el uso de ancho de banda, Easy Print provoca un uso de ancho de banda de red ligeramente mayor, pero no lo suficientemente significativo como para compensar las otras ventajas de rendimiento, capacidad de administración y confiabilidad.

El redireccionamiento de audio provoca un flujo constante de tráfico de red. El redireccionamiento de audio también permite a los usuarios ejecutar aplicaciones multimedia que normalmente tienen un consumo elevado de CPU.

Configuración de la experiencia del cliente

De manera predeterminada, Conexión a Escritorio remoto (RDC) elige automáticamente la configuración de experiencia adecuada en función de la idoneidad de la conexión de red entre los equipos cliente y el servidor. Se recomienda que la configuración de RDC permanezca en Detectar calidad de conexión automáticamente.

Para los usuarios avanzados, RDC proporciona control sobre una variedad de configuraciones que influyen en el rendimiento del ancho de banda de red para la conexión de Servicios de Escritorio remoto. Puede acceder a la siguiente configuración mediante la pestaña Experiencia en Conexión a Escritorio remoto o como configuraciones del archivo RDP.

La siguiente configuración se aplica al conectarse a cualquier equipo:

  • Disable wallpaper (Disable wallpaper:i:0) No mostrar el fondo de pantalla del escritorio en las conexiones redirigidas. Esta configuración puede reducir significativamente el uso del ancho de banda si el fondo de pantalla del escritorio consta de una imagen u otro contenido con costos significativos para dibujarlo.

  • Bitmap cache (Bitmapcachepersistenable:i:1) Cuando esta configuración está habilitada, crea una memoria caché del lado cliente de los mapas de bits que se representan en la sesión. Proporciona una mejora significativa en el uso del ancho de banda y siempre se debe habilitar (a menos que haya otras consideraciones de seguridad).

  • Show contents of windows while dragging (Disable full window drag:i:1) Cuando esta configuración está deshabilitada, reduce el ancho de banda mostrando solo el marco de la ventana en lugar de todo el contenido cuando se arrastra.

  • Animación de menús y ventanas (Disable menu anims:i:1 y Disable cursor setting:i:1): cuando estas configuraciones están deshabilitadas, se reduce el ancho de banda al deshabilitar la animación en menús (por ejemplo, la atenuación) y cursores.

  • Suavizado de fuentes (Allow font smoothing:i:0) Controla la compatibilidad con la representación de fuentes ClearType. Al conectarse a equipos que ejecutan Windows 8 o Windows Server 2012 y versiones posteriores, habilitar o deshabilitar esta configuración no tiene un impacto significativo en el uso del ancho de banda. Sin embargo, para los equipos que ejecutan versiones anteriores a Windows 7 y Windows 2008 R2, habilitar esta configuración afecta significativamente al consumo de ancho de banda de red.

La siguiente configuración solo se aplica al conectarse a equipos que ejecutan Windows 7 y versiones anteriores del sistema operativo:

  • Composición del escritorio Esta configuración solo se admite para una sesión remota a un equipo que ejecuta Windows 7 o Windows Server 2008 R2.

  • Estilos visuales (disable themes:i:1) Cuando esta configuración está deshabilitada, se reduce el ancho de banda simplificando los dibujos de temas que usan el tema clásico.

Mediante la pestaña Experiencia en Conexión a Escritorio remoto, puede elegir la velocidad de conexión para influir en el rendimiento del ancho de banda de red. A continuación, se enumeran las opciones disponibles para configurar la velocidad de conexión:

  • Detectar calidad de conexión automáticamente (Connection type:i:7) Cuando esta opción está habilitada, Conexión a Escritorio remoto elige automáticamente la configuración que dará lugar a una experiencia de usuario óptima en función de la calidad de la conexión. (Se recomienda esta configuración al conectarse a equipos que ejecutan Windows 8 o Windows Server 2012 y versiones posteriores).

  • Módem (56 Kbps) (Connection type:i:1) Esta configuración habilita el almacenamiento en caché de mapas de bits persistente.

  • Banda ancha a baja velocidad (256 Kbps - 2 Mbps) (Connection type:i:2) Esta configuración habilita el almacenamiento en caché de mapas de bits persistente y los estilos visuales.

  • Satélite (2 - 16 Mbps con latencia alta) (Connection type:i:3) Esta configuración permite la composición del escritorio, el almacenamiento en caché persistente del mapa de bits, los estilos visuales y el fondo del escritorio.

  • Banda ancha a alta velocidad (2 - 10 Mbps) (Connection type:i:4) Esta configuración habilita la composición del escritorio, muestra el contenido de las ventanas al arrastrar, la animación de menús y ventanas, el almacenamiento en caché persistente de mapas de bits, los estilos visuales y el fondo del escritorio.

  • WAN (10 Mbps o superior con latencia alta) (Connection type:i:5) Esta configuración habilita la composición del escritorio, muestra el contenido de las ventanas al arrastrar, la animación de menús y ventanas, el almacenamiento en caché persistente de mapas de bits, los estilos visuales y el fondo del escritorio.

  • LAN (10 Mbps o superior) (Connection type:i:6) Esta configuración habilita la composición del escritorio, muestra el contenido de las ventanas al arrastrar, la animación de menús y ventanas, el almacenamiento en caché persistente de mapas de bits, los temas y el fondo del escritorio.

Tamaño del escritorio

El tamaño del escritorio para las sesiones remotas se puede controlar mediante la pestaña Pantalla en Conexión a Escritorio remoto o mediante el archivo de configuración RDP (desktopwidth:i:1152 y desktopheight:i:864). Cuanto mayor sea el tamaño del escritorio, mayor será el consumo de memoria y ancho de banda asociado a esa sesión. El tamaño de escritorio máximo actual es 4096 x 2048.