martes, 7 de junio de 2011

REDUCCIÓN DE USO DE MEMORIA POR USUARIO EN TERMINAL SERVERS

En este post vamos a centrarnos en como reducir fácilmente el uso de memoria por usuario. Esto tendrá un efecto directo sobre el numero de usuarios que se pueden alojar en un único host.

Digamos que los usuarios consumen aproximadamente 100Mb de memoria inactiva. Si hacemos cálculos, con 40 usuarios se alcanzan los 4Gb de memoria, y esto ocurre cuando ellos están inactivos sin hacer nada. Por lo que si reducimos el consumo de memoria a 50Mb, se podrían alcanzar los 80 usuarios (en teoría).

A continuación os exponemos algunos pasos que se pueden realizar para reducir el consumo general de memoria con el fin de poder acoger a muchos más usuarios.


PRIMER PASO
Trataremos de hacer todo lo posible por reducir el número de programas en la carpeta de inicio. Incluso si se acaba de iniciar el MS Communicator y el Internet Explorer. Si nos deshacemos de estos dos programas, se ahorrará un gran pedazo de memoria. Con la ejecución del IE8 y el Communicator se consumen 10Mb de memoria por usuario. Así que si podemos reducir esto al 50%, probablemente se ahorraría unos 200Mb de memoria.


SEGUNDO PASO
Comprobaremos los procesos en el Administrador de Tareas de Windows y eliminar tantos procesos como sea posible. La siguiente lista te ayudará a conseguirlo:

cftmon.exe - Entrada Alternativa de Microsoft y barra de idiomas del Office
icabar.exe - Citrix ICA Bar
acrotray.exe - Bandeja de Adobe
reader_sl.exe - Inicio rápido de Adobe Acrobat
aclntusr.exe - Agente Altiris
wuauclt.exe - Agnete de Windows Update
ssonsvr.exe - Citrix Single Sign On. Si sólo se está ejecutando aplicaciones publicadas o no se necesita ICA en un escritorio de publicación, se puede eliminar. Se puede agregar de nuevo en cualquier momento.

Se podría eliminar algunos de ellos desde el registro en todos los Terminal Servers usando las Preferencias  de las Políticas de Grupo. La localización del registro es:

HKLM\Software\Microsoft\Windows\CurrentVersion\Windows\Run

Si se tiene una gran cantidad de valores en el registro, se debe eliminar la mayor cantidad posible antes de que nadie se entere, porque esta no es la mejor manera de trabajar con Terminal Servers, y de esta forma se podrá acoger muchos más usuarios.

PD: Esto también se puede aplicar a proveedores de redes y de herramientas de grupo.


TERCER PASO
Si se usa el Internet Explorer 8, cada pestaña crea una nueva instancia de iexplore.exe. Así que si se tienen dos pestañas abiertas podemos encontrarnos con tres instancias de iexplore, una para cada pestaña y otra para el frame de Windows.

Es muy recomendable agregar la siguiente clave de registro para limitar esto a sólo dos instancias. Hemos podido comprobar que con ello se reduce un 15% de memoria de IE8 por usuario.

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main REG_DWORD - TabProcGrowth = 1


CUARTO PASO
Instalar y aprovechar Citrix HDX MediaStream para Flash. Nuestros resultados para algunos sitios webs en flash nos muestra una reducción de 150Mb y entre un 5 y 7% de la actividad de la CPU, por usuario 50Mb constante y 0% de la CPU.

Problema con actualizaciones

PROBLEMA:
Hay ocasiones en los que el sistema se queda "pillado" con la instalación de una o varias actualizaciones. Cuando ocurre esto, el sistema arranca y aparece el mensaje "Instalando actualizaciones, por favor no apague el equipo.", pero al terminar de instalarlas, de manera supuestamente correcta y tras el reinicio la máquina, el proceso vuelve a comenzar de nuevo desde el principio y así indefinidamente. Si tratamos de resolver este comportamiento en modo a prueba de fallos, podremos comprobar que no se soluciona. ¿qué podemos hacer entonces?.

SOLUCIÓN:
No hace falta formatear ni tomar medidas más drásticas como lanzar el pc por la ventana. Lo que haremos será arrancar el sistema en modo línea de comandos, ir al directorio donde tengamos instalado el sistema operativo, normalmente c:\windows, y una vez ahí debemos ir al directorio c:\windows\winsxs. En esta ubicación nos encontraremos con el el fichero pending.xml que debemos renombrar a pending.old. Tras realizar este cambio, y reiniciar la máquina, veremos que el problema ha quedado resuelto y ya no entra en el bucle.