Windows, ¿por qué tus 8 GB de RAM parecen unos pocos MB?

Windows, ¿por qué tus 8 GB de RAM parecen unos pocos MB?

Estoy en Windows 7 x64 con Intel i7 de 4 núcleos y 8 GB de RAM, pero últimamente parece que la "RAM" de mi computadora está ubicada únicamente en el disco duro.

Esto es lo que muestra el administrador de tareas:

Captura de pantalla del administrador de tareas

La cantidad total de memoria utilizada por los procesos de la lista es aproximadamente 1 GB. Y lo que está sucediendo en mi computadora desde hace unos días es que un programa (Cataloger.exe) procesa continuamente grandes cantidades de archivos (cerca de 5 a 10 MB cada uno), abriéndolos y leyéndolos repetidamente con el fin de catalogarlos. Pero no crece demasiado en memoria y se mantiene en ese tamaño, 100 MB. Sin embargo, la cantidad de datos que procesa en, digamos, 30 minutos se puede medir en gigabytes.

Entonces mi suposición fue que el almacenamiento en caché de archivos de Windows tiene algo que ver con eso. Y después de investigar un poco sobre el tema, encontré este programa, llamado RamMap, que muestra información detallada sobre la RAM de una computadora. Aquí está la captura de pantalla:

Captura de pantalla de RamMap

Entonces, a mí me parece que Windows mantiene en la RAM enormes cantidades de datos que ya no son necesarios, redirigiendo cualquier solicitud de asignación de RAM al archivo de paginación en el disco duro. Incluso cuando cierro Cataloger.exe, RamMap informa que el tamaño del archivo mapeado es aproximadamente el mismo durante mucho tiempo. Y no se trata sólo de este programa en particular. Anteriormente noté que se producía una desaceleración similar después de algunas operaciones masivas de archivos con otros programas. Así que realmente no es un comportamiento excepcional de Cataloger.exe y el problema se manifestó muchas veces en el pasado.

Sea lo que sea, ralentiza la computadora unas 50 veces. Abrir una nueva pestaña en Chrome tarda entre 20 y 30 segundos, abrir un nuevo programa puede tardar hasta un minuto. Debido a la desaceleración, algunos programas incluso fallan.

Entonces, ¿qué piensas? ¿El problema se esconde en el almacenamiento en caché de archivos o en algún otro lugar? ¿Cómo lo soluciono?

Respuesta1

Todo sigue igual y todo funciona correctamente. Windows no mantiene los archivos almacenados en caché en la memoria por encima de otros datos: los archivos almacenados en caché significan que en un momento dado, Windowsteníapara cargarlos en la memoria o leerlos del disco, y desde entonces no ha aparecido algo de mayor prioridad. Tan pronto como vuelva a usar la computadora y los programas soliciten memoria, Windows eliminará felizmente los archivos almacenados en caché para hacer espacio.

Si observa RAMMap, notará que la mayoría de esos archivos almacenados en caché están asignados en "En espera", lo que significa que se mantienen en la memoria porque Windows los necesitaba en el pasado, podría necesitarlos nuevamente y los descartará con mucho gusto. si algo masde hechonecesita el espacio.

Básicamente, lo que estás viendo aquí es que tu programa solicita que se cargue un archivo de datos grande, por lo que Windows lo carga en la memoria. Administrar la memoria es un proceso muy complejo, y lo que Windows está haciendo aquí en secreto es tomar una decisión: observa los procesos actuales y ve que Chrome está ocupando, digamos, 5 GB de memoria (¡muchas pestañas!), pero que la mayor parte de ese recuerdo no ha sido tocado en la última hora. En este punto, tiene una opción: puede dejar Chrome en la memoria y no almacenar en caché los archivos. Esto significa que el proceso de Catalogador podría tardar horas en lugar de minutos en procesar un archivo, especialmente si salta mucho en el archivo; o puede buscar las pestañas de Chrome y cargar el archivo Cataloger en la memoria y finalizar ese proceso rápidamente.

Ahora, sentirá el dolor cuando Windows tenga que volver a colocar Chrome en la memoria, pero Windows no lo hará hasta que usted lo solicite (es decir, traer Chrome nuevamente al primer plano y seleccionar una pestaña que fue paginada), y ¿qué Lo que en última instancia debe ser evaluado por usted es si el dolor de eso es mayor o menor que el dolor de su tarea de Catalogador de tener que esperar en su memoria. Puede intentar ejecutar el programa como un servicio y decirle a Windows que optimice la capacidad de respuesta, o intentar reducir la prioridad del proceso, pero estoy bastante seguro de que lo que querrá es que el proceso de Cataloger finalice lo más rápido posible. está maximizando la E/S de su disco, todo su sistema será increíblemente lento. Todo lo que requiera E/S de disco se pondrá en una cola (incluso la navegación web, ¡también tiene un caché que usa!). Los programas se abrirán lentamente, las pestañas nuevas se abrirán rápidamente, pero usarlos para algo será lento.


Si el programa simplemente lee secuencialmente archivo tras archivo y luego no los vuelve a tocar, estoy de acuerdo en que Windows no necesita almacenar en caché los archivos. El problema aquí es que Windows no lo sabe, porque nadie le dice que no es necesario almacenarlos en caché.

Si tiene acceso al código fuente del programa Cataloger (o puede solicitar que se le realicen modificaciones), puede configurarlo para abrir archivos con FILE_FLAG_NO_BUFFERING, lo que hará que Windows omita el caché del disco para los archivos abiertos por el programa de esta manera. .

Si esa no es una opción, entonces, a menos que el proceso Catalogadortienepara ejecutarlo en su sistema, miraría a mi alrededor para ver si hay una computadora de repuesto que no esté en uso y vería si se puede configurar como una máquina dedicada para catalogar estos archivos. Si aún no existe una, simplemente aumentar la RAM podría ser otra opción; Los precios de la memoria son bastante baratos hoy en día, y los desarrolladores lo saben: la mayoría de las cosas están optimizadas para la velocidad y la capacidad de respuesta a costa de la memoria. 8GB ya no es lo que solía ser.

Otra opción es mover todos los archivos que utiliza a un disco duro separado y desactivar específicamente el almacenamiento en caché del disco para esa unidad.

Respuesta2

Tuve exactamente el mismo problema, es un proceso llamado "intellimem.exe". Lo eliminé y ¡KABOM! ¡Desde el 80 % de RAM y archivos de paginación hasta ningún archivo de páginas y un 20 % de uso de RAM! y no tengo problemas.

información relacionada