He notado que mi servidor de producción "svchost.exe -k netsvcs" está ocupando> 1 GB de memoria RAM, de manera constante, lo que creo que es un poco excesivo.
Esto es lo que tasklist / svc me dará para este proceso:
Appinfo, CertPropSvc, gpsvc, IKEEXT,
iphlpsvc, LanmanServer, ProfSvc, Schedule,
SENS, SessionEnv, ShellHWDetection,
Winmgmt, wuauserv
Me preguntaba cuál podría ser el proceso enumerado que es responsable de esta pérdida de memoria y cómo solucionarlo. ¿Alguien ha tenido este mismo comportamiento en el pasado?
El servidor ejecuta Windows Server 2008 R2 (compilación 7601: Service Pack 1) y su función principal es ejecutar trabajadores internos de procesadores de aplicaciones.
windows-server-2008-r2
svchost
agentesvr
fuente
fuente
SC Config Servicename Type= own
. Ver serverfault.com/questions/12278/…Respuestas:
La pregunta es, ¿es una fuga? Estás diciendo que el uso de la memoria es "constante".
Fuga = el uso de memoria aumenta con el tiempo, nunca disminuye, por lo que debe volver a cargar el servidor de vez en cuando.
Si el taks se mantiene en ~ 1 GB durante mucho tiempo (por ejemplo, dos semanas), entonces la situación es perfectamente normal. El software moderno está hecho para usar memoria libre siempre que sea necesario, y conozco algunos programas que simplemente tomarán lo que sea que haya para ahorrar tiempo en la asignación de memoria.
Si no impide el funcionamiento del sistema, no lo toque.
fuente
La asignación de memoria es muy costosa en los ciclos de la CPU en comparación con la reutilización de la memoria asignada existente. A menudo, una vez que se inicia un programa, hasta que finaliza su función, no "suelta" esta memoria.
Por ejemplo, Firefox guarda memoria por algún tiempo. Si deja su computadora encendida durante una semana con Firefox abierto, notará que crecerá constantemente en tamaño de memoria. Después de YouTubing, Google Play Music-ing y navegación, el mío alcanza 2-4GB en la memoria, que se reduce a 300MB después de reiniciar el proceso. Esto se debe a sus características de almacenamiento en caché, y este comportamiento es por diseño.
Tendería a creer que el proceso SVCHost está funcionando exactamente como debería. ¿Cuántos servicios está ejecutando su servidor? 1 GB no suena preocupante, aunque eso depende de los servicios que esté ejecutando.
fuente
Como siguiente paso, si desea investigar más a fondo, instalaría el explorador de procesos (procexp.exe) que puede encontrar en el sitio de Microsoft. Eso le dará qué servicios usan este proceso (vea la captura de pantalla de procexp), luego puede detener / iniciar servicios y ver si un servicio en particular está asociado con la liberación / adquisición de una asignación de memoria grande. También le dirá si es memoria asignada de conjunto de trabajo o privada (= principalmente montón). Si está vinculado a un servicio específico, tendrá un camino más claro para seguir investigando.
No hace falta decir que necesitaría hacer esta prueba en la ventana de interrupción / mantenimiento acordada o reproducirla en un servidor de prueba, ya que interrumpirá las operaciones normales. Reiniciar y verificar la lista de servicios vuelve a su conjunto de ejecución normal después de completar la prueba.
Captura de pantalla:
fuente