La "Lista de espera vacía" de RamMap acelera drásticamente la PC. ¿Hay una mejor manera de hacer esto?

24

Mucha gente está informada sobre cómo funciona el almacenamiento en caché del administrador de memoria de Windows leyendo los documentos técnicos de Microsoft, etc. Sin embargo, hay relativamente pocos documentos que describan problemas de rendimiento del mundo real (lentitud) relacionados con archivos mapeados muy grandes / en crecimiento y listas de espera.

Tengo una PC Win7 de 64 bits (8 Gb de RAM) que actúa como servidor. No puedo agregarle más memoria. Tiene un montón de sintonizadores de TV que graban / escriben varios archivos mpeg2 gigantes simultáneos (al menos 3-8GB cada uno) en un HDD 24/7. Dependiendo de qué tan ocupado esté mi PC grabando programas de TV, después de 1-3 días, mi PC se vuelve lenta.

Con solo mirar el Administrador de tareas de Windows, parece que no tengo muchas aplicaciones grandes abiertas; y mucha "memoria disponible". Incluso si cierro todos los procesos activos, la PC permanece lenta. Sin embargo, cuando uso RamMap, puedo ver que estos grandes archivos mpeg2 se convierten en archivos asignados en la lista de espera activa; que con el tiempo hacen que mi PC sea muy lenta. Si selecciono "Lista de espera vacía" en RamMap, mi PC inmediatamente se vuelve extremadamente receptiva; como si acabara de reiniciarlo. No hay nada más que pueda hacer para abordar la lentitud. De hecho, la PC nunca se recuperará de esta lentitud a menos que vacíe la lista de espera o reinicie.

Tengo una utilidad de línea de comandos, EmptyStandbyList.exe, que encontré que purga silenciosamente la lista de espera en lugar de tener que hacerlo en la GUI de RamMap. Sin embargo, desafortunadamente también elimina elementos más pequeños en la lista de espera que son muy útiles para fines de rendimiento para permanecer en la lista de espera.

Mientras buscaba en Google, encontré otras personas que tienen casi el mismo problema que yo. Sin embargo, la mayoría de sus preguntas quedan sin respuesta; sin una explicación real de por qué sucede esto; y, no hay forma definitiva de solucionar el problema que no sea la técnica "Lista de espera vacía".

He visto menciones de una utilidad / servicio de MS llamado "Dynamic Cache"; pero no estoy seguro si cura específicamente lo que quiero. Además, la versión Win7 / Win2008 R2 parece estar disponible solo a través del soporte de MS. También vi un par de utilidades que establecen los "límites de caché de NT mínimo / máximo"; pero parece que son específicos de grupos de trabajo para procesos, no listas de espera.

Espero que alguien que pueda pensar fuera de la caja pueda pensar en una cura más elegante para mí en lugar de que tenga que usar brutalmente vacía toda la lista de espera regularmente; y espero tener una explicación definitiva del síntoma que yo (y otras personas) estamos viendo. La razón por la que mencioné "fuera de la caja" es porque ya hay muchas personas a las que les gusta recitar cómo los archivos mapeados y las prioridades de la lista de espera "deberían" funcionar en papel; lo cual no es muy útil para mí

usuario22667
fuente
Me doy cuenta de que esta es una publicación antigua y que esta sugerencia podría ser difícil de probar, pero si algún día tienes la oportunidad, quizás quieras probar tu configuración con una edición de servidor de Windows. Quizás haya aún más diferencias ocultas indocumentadas en cómo un sistema operativo del servidor maneja la memoria que funcionaría para su beneficio.
Digo reinstalar Mónica

Respuestas:

2

La lista de espera es la caché Superfetch y la "caché dinámica" soluciona un problema diferente. El servicio soluciona un problema donde el caché de metadatos NTFS es demasiado alto. Pero Stadnbylist y este caché son 2 cosas diferentes. La memoria caché NTFS se muestra como memoria usada, mientras que la memoria caché en espera contiene datos, pero se puede vaciar muy rápidamente si realmente la nueva memoria almacena datos en ella.

En el foro sysinternals, el usuario wj32, el autor de Process Hacker, creó una herramienta de línea de comandos que hace lo que quiere:

http://forum.sysinternals.com/rammap-empty-standby-list_topic27297_post132769.html#132769

Pruébelo si "soluciona" su problema.

magicandre1981
fuente
55
¿No es esa herramienta de línea de comandos exactamente la misma EmptyStandbyList.exe que el OP mencionó en su publicación, y para la cual quiere una alternativa mejor, quizás más enfocada?
Karan
2
Uhh ... ¿Leíste la línea que comienza "Sin embargo, desafortunadamente ...", y el hecho de que quiere "una cura más elegante"?
Karan
44
Es bueno saber que hay personas que se toman el tiempo de leer el OP un poco más cuidadosamente antes de publicar. Sin embargo, aprendí un par de cosas que no sabía antes. Parece que lo que realmente está causando el problema de rendimiento está relacionado con la memoria caché Superfetch; no caché de metadatos NTFS. RamMap muestra ambos. Sé que bajo Windows Vista, tuve que desactivar completamente el servicio Superfetch porque no sabía cómo manejar las grabaciones de TV (desde mi aplicación DVR); y estaba causando un uso excesivo de mi HDD. Actualmente tengo el servicio Win7 superfetch para mejorar el arranque y las aplicaciones que uso en la memoria.
user22667
2
Estoy usando un SSD para mi partición de arranque; que tiene solo 256GB de tamaño. Tengo curiosidad por saber si hay alguna configuración en superfetch que solucionaría este problema; como suprimir ciertos tipos de archivos de superfetch? Con suerte, alguien que sepa cómo funciona todo esto explicará por qué sucede esto y ofrecerá una solución mejor que la que yo tengo.
user22667
3
vaciar la lista de espera sin cambiar la configuración de relación / límite del administrador de memoria, simplemente le pide a Windows que comience a llenar la memoria ahora libre. Esto también elimina los elementos útiles reales que están en la lista de espera y ambas cosas reducen la velocidad de su máquina de lo que es capaz de hacer.
BeowulfNode42
1

¿Podría ser que la lentitud provenga de Windows obligando a cargar / guardar cosas desde la unidad de intercambio, que con cada video grabado, la lista de espera crece y con una gran unidad de intercambio, otros programas (en segundo plano) ahora son empujados a la unidad de intercambio, ralentizando la máquina.

Si esta PC solo se usa para grabar programas de TV, tal vez una solución podría ser hacer que la unidad Swap sea tan pequeña como Windows permite que se configure, lo que creo que es de 16 MB. No apague la unidad de intercambio totalmente, ya que Windows creará una unidad de intercambio en secreto.

De alguna manera, no puedo imaginar que Windows se vuelva lento, si solo estuviera leyendo datos de la RAM, mientras que no se cargan nuevos programas desde el Disco.

Qoute del documento de MS http://download.microsoft.com/download/7/E/7/7E7662CF-CBEA-470B-A97E-CE7CE0D98DC2/MemorySizingGuidanceWin7.docx :

"Windows 7 SuperFetch ™ funciona con el administrador de memoria para establecer prioridades para las páginas de la lista de espera. Las páginas que se han colocado recientemente en la lista de espera comienzan con una alta prioridad, que disminuye lentamente con el tiempo.

Si el sistema tiene muy poca memoria para manejar la carga de trabajo, solo un pequeño porcentaje de las páginas en la lista de espera tiene una prioridad baja. Al monitorear el número de páginas con diferentes prioridades, puede determinar si el sistema se beneficiaría al aumentar la cantidad de RAM instalada ".

En general, el objetivo es garantizar que el sistema pueda mantener en la memoria las páginas a las que se hace referencia recientemente y aún tener suficiente memoria disponible para satisfacer cualquier necesidad de memoria inmediata ".

Tal vez también el programa de grabación de TV, ya que sigue ejecutándose y no se detiene, tiene cada página que va a la lista de espera marcada como la más alta prioridad para eliminar otras cosas, lo que normalmente aceleraría Windows. Sin embargo, pensaría que esas cosas se liberan cuando la memoria es baja y / o cuando no hay un archivo de intercambio que Windows no puede comenzar a usar en secreto la unidad de intercambio que ralentiza las cosas. Esto se da por supuesto que los datos de la Lista de espera no se cargarán en la unidad de intercambio.

Vuurdraak
fuente