En una instalación de Small Business Server 2011, una gran cantidad de procesos w3wp.exe parecen estar utilizando una gran cantidad de memoria desproporcionada. Las instalaciones listas para usar de SBS vienen con un total de 7 sitios y 20 grupos de aplicaciones ASP.NET (Sharepoint, Exchange, WSUS y cosas específicas de SBS como Remote Web Workplace).
La docena resultante de procesos w3wp.exe tiende a consumir más de 4 GB de memoria del servidor a lo largo del tiempo, siendo el grupo de aplicaciones pico el que pertenece a WSUS con alrededor de 800 MB en el conjunto de trabajo. Reciclar manualmente los grupos de aplicaciones a través de IIS MMC ayuda a reducir temporalmente el uso de memoria (los procesos w3wp.exe se reducen a 10 MB, algunos de ellos vuelven a crecer rápidamente), pero obviamente no es algo que un administrador quiera hacer todo el día. No pude encontrar ninguna recomendación sobre el reciclaje automático de los grupos de aplicaciones preinstalados de SBS, por lo que soy un poco reacio a "simplemente hacerlo" en los sistemas de producción.
Mi investigación en la red sobre cómo limitar esto solo arrojó una serie de publicaciones que indicaban que el consumo de memoria w3wp no dañaría pero beneficiaría el rendimiento ya que la memoria sería "liberada cuando otras aplicaciones lo necesitaran". El problema es que no funciona:
- por un lado, un SBS es un servidor de múltiples funciones, una de las funciones (la principal) es el almacenamiento de red CIFS que se beneficia enormemente del almacenamiento en caché del sistema de archivos que nuevamente depende de que la memoria sea "libre" como "no utilizada por otros procesos en ningún way ": los grupos de aplicaciones ASP.NET que casi nunca ven usuarios y comen memoria son contraproducentes
- Otra cosa es que todavía tengo que ver una disminución sustancial del consumo de memoria de las instancias de w3wp ante la escasez de memoria; lo que veo es una disminución menor en significativamente menos de 100 mb y un intercambio excesivo en su lugar, nuevamente perjudicando el rendimiento
Casi nunca administro aplicaciones IIS o ASP.NET, por lo que cualquier idea sobre cómo recortar eficazmente los requisitos de memoria para los grupos de aplicaciones es bienvenida.
fuente
Respuestas:
Bienvenido al maravilloso mundo de SBS. Requisitos recomendados para RAM = 10 GB ... y REQUIERE un mínimo de 8 gb. ( según Microsoft ) por una buena razón. No es una máquina bien engrasada ... es muy descuidada, hinchada y tiene todo bajo el sol. Cuanta más RAM puedas arrojar a esa caja ... mejor. Desafortunadamente, estás limitado a 32 gb máximo. Qué imho ... es tonto.
fuente
Esto es lo que terminé haciendo:
configurando el caché de la aplicación del servidor para .NET AppPools en un valor bajo (5 MB) configurando el parámetro privateBytesLimit en
web.config
at%WINDIR%\Microsoft.NET\Framework\<version>\Config
como se sugiere en esta respuesta :Esto ayudó a reducir el uso de memoria a algo más de 1 GB con la configuración predeterminada de reciclaje del grupo.
Aparentemente, usar el tipo de "servidor" del recolector de basura (
<gcServer = "true">
) también puede conducir a un consumo significativo de memoria , pero como parece,<gcServer>
está configurado en falso de manera predeterminada.fuente
Si sospecha que el consumo de memoria resultante es un problema debido a un defecto de software, puede usar Microsoft DebugDiag 1.2 para crear un volcado de memoria completo y analizar el volcado en busca de problemas comunes. Si cree que puede haber un problema de memoria, debe habilitar el seguimiento de fugas seleccionando la opción "Supervisar fugas" y dejar que se ejecute durante un tiempo antes de crear / analizar el volcado.
DebugDiag 1.2 Descargar
https://www.microsoft.com/download/en/details.aspx?id=26798
fuente
No necesita un grupo de aplicaciones separado para cada aplicación, solo aquellas que no son confiables o a las que desea dar prioridad. Muchos pueden compartir (manteniendo diferentes versiones de .net separadas). Luego puede limitar de manera más realista la memoria que usará un grupo de aplicaciones. No debería haber necesidad de reciclar repetidamente las piscinas más de una vez al día.
Además, solo hay tanta memoria que se puede liberar de esta manera. Si bien parte de ella será caché, cada aplicación necesita una cierta cantidad de memoria de trabajo que depende en gran medida de la aplicación web específica. Intentar restringir esto demasiado hará que las cosas se detengan.
El problema realmente es que SBS intenta hacer demasiado de una vez, necesita mirar lo que realmente usa y apagar lo que no hace.
Pero para ser sincero con solo 11 usuarios, ¿a dónde va el resto de la memoria? ¡Exchange y SQL para uso ligero ciertamente no necesitan más de 12 Gb!
fuente