¿Algún beneficio o detrimento de eliminar un archivo de paginación en una máquina de 8 GB de RAM?

213

Estoy ejecutando Windows 7 en un doble núcleo, AMD x64 con 8 GB de RAM.

¿Necesito incluso un archivo de página?

¿Eliminarlo ayudará o perjudicará el rendimiento?

¿Habría alguna diferencia si se trata de un servidor o un escritorio?

¿Windows 7 vs. Windows 2008 hace la diferencia con un archivo de página?

Jason
fuente

Respuestas:

299

TL; versión DR: deje que Windows maneje su configuración de memoria / archivo de paginación. La gente de MS ha pasado muchas más horas pensando en estos problemas que la mayoría de nosotros, los administradores de sistemas.

Muchas personas parecen suponer que Windows introduce datos en el archivo de paginación a pedido. EG: algo quiere mucha memoria, y no hay suficiente RAM para satisfacer la necesidad, por lo que Windows comienza a escribir locamente datos de RAM en el disco en este último minuto, para que pueda liberar RAM para las nuevas demandas.

Esto es incorrecto. Hay más cosas debajo del capó. En términos generales, Windows mantiene una tienda de respaldo , lo que significa que quiere ver todo lo que está en la memoria también en algún lugar del disco. Ahora, cuando algo aparece y exige mucha memoria, Windows puede borrar la RAM muy rápidamente, porque esos datos ya están en el disco, listos para volver a paginarse en la RAM si es necesario. Por lo tanto, se puede decir que gran parte de lo que hay en el archivo de paginación también está en la RAM; los datos se colocaron de manera preventiva en un archivo de paginación para acelerar las nuevas demandas de asignación de memoria.

La descripción de los mecanismos específicos involucrados tomaría muchas páginas (vea el capítulo 7 de Windows Internals , y tenga en cuenta que pronto estará disponible una nueva edición ), pero hay algunas cosas buenas para tener en cuenta. Primero, gran parte de lo que hay en la RAM ya está intrínsecamente en el disco; por ejemplo, el código del programa obtenido de un archivo ejecutable o una DLL. Por lo tanto, esto no necesita ser escrito en el archivo de paginación; Windows simplemente puede realizar un seguimiento de dónde se obtuvieron originalmente los bits. En segundo lugar, Windows realiza un seguimiento de qué datos en la RAM se usan con mayor frecuencia, y borra de la RAM los datos que se han extendido más tiempo sin acceder.

Eliminar completamente el archivo de paginación puede causar más agitación del disco. Imagine un escenario simple donde algunas aplicaciones se inician y exigen el 80% de la RAM existente. Esto forzaría el código ejecutable actual fuera de la RAM, posiblemente incluso el código del sistema operativo. Ahora, cada vez que esas otras aplicaciones, o el propio sistema operativo (!!) necesitan acceso a esos datos, el sistema operativo debe enviarlos desde la tienda de respaldo en el disco, lo que genera mucha agitación. Debido a que sin un archivo de paginación que sirva como almacén de respaldo para datos transitorios, lo único que se puede paginar son los archivos ejecutables y las DLL que tenían almacenes de respaldo inherentes para comenzar.

Por supuesto, hay muchos escenarios de recursos / utilización. No es imposible que tenga uno de los escenarios bajo los cuales no habría efectos adversos al eliminar el archivo de paginación, pero estos son minoritarios. En la mayoría de los casos, eliminar o reducir el archivo de paginación conducirá a un rendimiento reducido en escenarios de utilización máxima de recursos.

Algunas referencias:

dmo señaló una publicación reciente de Eric Lippert que ayuda a comprender la memoria virtual (aunque está menos relacionada con la pregunta). Estoy poniendo aquí porque sospecho que algunas personas no van a desplazarse hacia otras respuestas - pero si lo encuentra valioso, te debo DMO votación, a fin de utilizar el enlace para llegar allí!

quux
fuente
25
Para Jeff y Joel: rima con "patos"
quux
2
En Solaris estuvo / está aún más involucrado. El archivo de intercambio se refleja en un disco RAM como tmpfs, por lo que la memoria siempre está casi llena, pero aparentemente es comprobable que esta es la estrategia óptima.
Martin Beckett
2
Durante mucho tiempo he creído que, en lugar de permitir que Windows administre el tamaño de mi archivo de página, debería configurarlo en una cantidad fija (por ejemplo, mínimo 2 GB, máximo 2 GB), porque dejarlo crecer y reducirse puede causar problemas de fragmentación. ¿Es una buena idea, o debería seguir su primera línea y dejar que Windows se encargue de todo?
John Fouhy el
2
@Mehrdad: Porque no quieres tener que mantener el 50% de tu RAM libre. Claro, podría hacerlo, pero perdería el 50% de la RAM física que podría estar utilizando como caché de disco para datos activos. La RAM libre es una señal de ineficiencia, es como los camiones de FedEx en un depósito en lugar de en la carretera. Significa que no está moviendo tanta carga como podría porque está gastando demasiado tiempo cargando y descargando.
David Schwartz
2
@Mehrdad: El problema es que, sin un archivo de página, hay una gran cantidad de datos que deben mantenerse en la RAM, aunque es probable que nunca se acceda a ellos. Considere, por ejemplo, cualquier memoria asignada por un proceso que comenzó en el inicio del sistema pero ofrece un servicio que no se utilizará durante días. El sistema no puede probar que no se accederá a los datos y no tiene otro lugar que la RAM para guardarlos. Por lo tanto, la memoria caché del disco se reduce mientras los datos se guardan en la RAM a la que no se ha accedido durante días.
David Schwartz
80

Eric Lippert recientemente escribió una entrada de blog describiendo cómo Windows maneja la memoria. En resumen, el modelo de memoria de Windows puede considerarse como un almacén de discos donde la RAM actúa como un caché que mejora el rendimiento.

dmo
fuente
47

Como veo en otras respuestas, soy el único que deshabilitó el archivo de página y nunca me arrepentí. Excelente :-)

Tanto en casa como en el trabajo tengo Vista de 64 bits con 8 GB de RAM. Ambos tienen el archivo de página deshabilitado. En el trabajo no es nada inusual que tenga pocas instancias de Visual Studio 2008, Virtual PC con Windows XP, 2 instancias de SQL Server e Internet Explorer 8 con muchas pestañas trabajando juntas. Raramente alcanzo el 80% de la memoria.

También estoy usando el sueño híbrido todos los días (hibernación con sueño) sin ningún problema.

Comencé a experimentar con Windows XP con 2 GB de RAM y realmente vi la diferencia. El ejemplo clásico fue cuando los íconos en el Panel de control dejaron de mostrarse uno tras otro, pero todos a la vez. También el tiempo de inicio de Firefox / Thunderbird aumentó dramáticamente. Todo comenzó a funcionar inmediatamente después de hacer clic en algo. Desafortunadamente, 2 GB era demasiado pequeño para el uso de mis aplicaciones (Visual Studio 2008, Virtual PC y SQL Server), así que lo habilité nuevamente.

Pero en este momento con 8 GB, nunca quiero volver y habilitar el archivo de página.

Para aquellos que dicen sobre casos extremos, tome este de mis tiempos de Windows XP.
Cuando intenta cargar una tabla dinámica grande en Excel desde una consulta SQL, Excel 2000 aumenta su uso de memoria bastante rápido.
Cuando tiene el archivo de página deshabilitado, espere un poco y luego Excel explotará y el sistema borrará toda la memoria después.
Cuando tenga habilitado el archivo de página, espere un momento y cuando note que algo anda mal no podrá hacer casi nada con su sistema. Su HDD funciona como el infierno e incluso si de alguna manera logra ejecutar el Administrador de tareas (después de unos minutos de espera) y matarlo excel.exe, debe esperar un minuto más o menos hasta que el sistema cargue todo desde el archivo de página.
Como vi más tarde, Excel 2003 maneja la misma tabla dinámica sin ningún problema con el archivo de página deshabilitado, por lo que no fue un "problema de conjunto de datos demasiado grande".

Entonces, en mi opinión, un archivo de página deshabilitado incluso lo protege a veces de aplicaciones mal escritas.

En breve: si conoce su uso de memoria, puede deshabilitarlo de forma segura.

Editar: solo quiero agregar que instalé Windows Vista SP2 sin ningún problema.

Vidente
fuente
3
He deshabilitado mi archivo de paginación y lo lamenté en el momento en que realmente usé mi memoria. Así que sé feliz porque tienes más memoria de la que necesitas.
Sam
77
+1, "yo también" :-). La misma historia: 8 GB de memoria, Vista x64, ejecutando Visual Studio con ReSharper + SQL Server Express + IIS + 1-2 máquinas virtuales (cada una con 1500 MB de memoria) + un montón de utilidades, nunca tuvo un problema.
Milan Gardian
21
Me encanta cómo todos dicen "Microsoft ha pasado muchas horas pensando en este problema, así que no te metas con él", pero ignora por completo las experiencias del mundo real. He deshabilitado el archivo de paginación desde XP y nunca me arrepentí. Es como si la computadora recibiera una inyección increíble.
AngryHacker
44
Es una práctica bastante estándar deshabilitar la paginación en servidores que inician iSCSI, la paginación a través de la SAN sería notablemente lenta. Solo tienes que vigilar el uso de tu memoria y mantenerte alejado del máximo.
Chris S
66
-1 No veo ninguna referencia en esta respuesta. En realidad, tuve un bloqueo del sistema porque el archivo de página estaba deshabilitado y la memoria de mi grupo paginado estaba llena. Sin embargo, mi uso de memoria física fue de solo 2 GB ...
Tamara Wijsman
34

Es posible que desee realizar algunas mediciones para comprender cómo su propio sistema está utilizando la memoria antes de realizar ajustes en el archivo de paginación. O (si aún desea hacer ajustes), antes y después de dichos ajustes.

Perfmon es la herramienta para esto; no administrador de tareas. Un contador clave es Memoria - Entrada de páginas / seg . Esto graficará específicamente las fallas de página duras , aquellas en las que se necesita una lectura del disco antes de que un proceso pueda continuar. Las fallas de página suaves (que son la mayoría de los elementos graficados en el contador predeterminado de Fallas de página / seg . ¡Recomiendo ignorar ese contador!) No son realmente un problema; simplemente muestran elementos que se leen de la RAM normalmente.

Gráfico de Perfmon http://g.imagehost.org/0383/perfmon-paging.png

Arriba hay un ejemplo de un sistema sin preocupaciones, en cuanto a memoria. Muy ocasionalmente hay un pico de fallas duras, que no se pueden evitar, ya que los discos duros siempre son más grandes que la RAM. Pero el gráfico es en gran parte plano en cero. Por lo tanto, el sistema operativo se está reproduciendo desde la tienda de respaldo muy raramente.

Si ve un gráfico Memoria - Entrada de páginas / segundo que es mucho más agudo que este, la respuesta correcta es reducir la utilización de la memoria (ejecutar menos programas) o agregar RAM. Cambiar la configuración de su archivo de paginación no cambiaría el hecho de que se requiere más memoria del sistema de la que realmente tiene.

Un contador adicional útil para monitorear es PhysicalDisk - Avg. Longitud de la cola (todas las instancias). Esto mostrará cuánto afectan sus cambios al uso del disco. Un sistema de buen comportamiento mostrará este contador con un promedio de 4 o menos por huso .

quux
fuente
1
jadea alguien incluso haciendo todo lo posible para demostrar cómo inspeccionar el archivo de intercambio. increíble.
cgp
1
Enlace muerto a la imagen. Necesidades arregladas.
kinokijuf
Sí, "ImageHost.org está cerrado"
Peter Mortensen el
34

He ejecutado mi cuadro Vista x64 de 8 GB sin un archivo de página durante años, sin ningún problema.

¡Surgieron problemas cuando realmente usé mi memoria!

Hace tres semanas, comencé a editar archivos de imagen realmente grandes (~ 2 GB) en Photoshop. Una sesión de edición consumió toda mi memoria. Problema: ¡No pude guardar mi trabajo ya que Photoshop necesita más memoria para guardar el archivo!

Y como era Photoshop en sí, que estaba consumiendo toda la memoria, ni siquiera podía liberar memoria cerrando programas (bueno, lo hice, pero era demasiado poco para ser de ayuda).

Todo lo que pude hacer fue eliminar mi trabajo, habilitar mi archivo de página y rehacer todo mi trabajo. Perdí mucho trabajo debido a esto y no puedo recomendar deshabilitar su archivo de página.

Sí, funcionará muy bien la mayor parte del tiempo. Pero en el momento en que se rompe puede ser doloroso.

Sam
fuente
77
debería ahorrar más a menudo: D para minimizar los daños
alexandrul
1
fácil de decir, cuando ahorrar lleva varios minutos, esto es una pita.
Sam
Todos estamos contentos si usa un software más complejo, pero a veces, un "bloqueo" termina alineándose con "Oh, mierda, no he guardado en mucho tiempo".
Damon
19

Si bien las respuestas aquí cubrieron el tema bastante bien, todavía recomendaré esta lectura:

http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Habla sobre el tamaño de PF casi al final:

Algunos sienten que no tener un archivo de paginación da como resultado un mejor rendimiento, pero en general, tener un archivo de paginación significa que Windows puede escribir páginas en la lista modificada (que representan páginas a las que no se accede activamente pero que no se han guardado en el disco) archivo de paginación, haciendo que esa memoria esté disponible para fines más útiles (procesos o caché de archivos). Entonces, aunque puede haber algunas cargas de trabajo que funcionen mejor sin un archivo de paginación, en general tener una significará que habrá más memoria disponible para el sistema (no importa que Windows no pueda escribir volcados de memoria del núcleo sin un archivo de paginación de gran tamaño) suficiente para sostenerlos).

Realmente me gustan los artículos de Mark.

Radim Cernej
fuente
+1, simple para el enlace Mark Russinovich. Vale la pena señalar que win7 incluso aparece una notificación para indicar que no podrá "rastrear problemas del sistema" si deshabilita el archivo de intercambio.
cgp
13

La mejor respuesta que se me ocurre es que, bajo una carga normal, es posible que no use los 8 GB, pero es en las cargas inesperadas donde tendrá problemas.

Con un archivo de página, el sistema al menos se ejecutará lentamente una vez que comience a llegar a la página. Pero si elimina el archivo de página, simplemente morirá (por lo que sé).

Además, 8 GB parece mucho ahora, pero unos años más tarde podría considerarse la cantidad mínima de memoria para una gran cantidad de software.

De cualquier manera, recomendaría mantener al menos un pequeño archivo de página; pero otros por favor corríjanme si estoy fuera de la base.

Dave Drager
fuente
44
Iría un poco más lejos y no limitaría el archivo de la página. Eso no está realmente mejorando las cosas. Deje que las ventanas lo hagan ... lo saben mejor.
Michael Haren
1
Intenté usar Media Player Classic para cargar un archivo mkv de 6GB. Me agotó la memoria RAM y el archivo de paginación. Volví a VLC bastante rápido. +1 para el "nunca sabes con qué te encontrarás". Finalmente, MPC se bloqueó y mi RAM se restableció, pero ¿qué pasa si obtiene una DLL en un software de terceros con una pérdida de memoria? Tendrá mucho más kilometraje si tiene algo de memoria respaldada por disco para ayudarlo.
mpbloch
1
Además del punto, ¿de qué sirve tener 8GB si tienes que vivir con el miedo constante de usarlo?
David Schwartz
El "mantener al menos un pequeño archivo de paginación" me parece un poco extraño ya que no está claro cómo Windows lo va a usar. Por ejemplo, podría agotarlo incluso más que un archivo de paginación más grande que ofrece más espacio, supongo, pero mientras no haya una fuente confiable sobre esto, consideraría que el pequeño consejo de archivo de página es posiblemente dañino y recomendaría una práctica estándar.
mafu
6

No mencionaste si es una edición de Windows de 64 bits, pero supongo que sí.

El archivo de paginación sirve para muchas cosas, incluida la generación de un volcado de memoria en caso de BSoD (pantalla azul de la muerte).

Si no tiene un archivo de paginación, Windows no podrá pasar la página al disco si no hay suficiente memoria. Puede pensar que con 8 GB no alcanzará ese límite. Pero es posible que los programas defectuosos pierdan memoria con el tiempo.

Creo que no te permitirá pasar a hibernar / en espera sin un archivo de paginación (pero aún no lo intenté).

Windows 7/2008 / Vista no cambia el uso del archivo de página.

Vi una explicación de Mark Russinovich (Microsoft Fellow) explicando que Windows puede ser más lento sin un archivo de página que con un archivo de página (incluso con mucha RAM). Pero no puedo encontrar la causa raíz.

¿Te has quedado sin espacio en disco? Mantendría un mínimo de 1 GB para poder tener un volcado de kernel en caso de un BSoD.

Mathieu Chateau
fuente
¿Quieres decir esto? blogs.technet.com/markrussinovich/archive/2008/11/17/… Si es así, su consejo es poco convincente. Él dice que el archivo de página aumentará el rendimiento porque daría más ram a otras aplicaciones. Es cierto, si no tienes mucho carnero. Pero si tiene más que suficiente, el archivo de página nunca es más rápido.
Pirolístico
fue en un video sysinternal con Salomon. Tenía algo que ver con el grupo de páginas del núcleo
Mathieu Chateau
No puede publicar una "respuesta" cuando no tiene idea: tengo un portátil con Windows Vista de 32 bits con 4 GB de RAM y lo pongo en espera todo el tiempo. ¿Puede al menos limitarse a proporcionar respuestas a preguntas que realmente conoce?
PP.
Lo que PP intentó decir: el proceso de hibernación utiliza un archivo separado del archivo de intercambio, por lo que este no es un problema en este caso.
mafu
Pirolístico, probablemente sea demasiado tarde para que vea esto, pero cambie su declaración y formúlela como una pregunta: ¿cuándo el archivo de paginación ralentiza algo? Una buena respuesta a eso probaría tu teoría.
quux
5

Inhabilité mi archivo de página (8 GB en una computadora portátil x86) y tuve dos problemas incluso con 2500 MB libres:

  1. Error de ASP.NET al intentar activar el servicio WCF : la comprobación de las compuertas de memoria falló porque la memoria libre (399,556,608 bytes) es inferior al 5% de la memoria total. Como resultado, el servicio no estará disponible para las solicitudes entrantes. Para resolver esto, reduzca la carga en la máquina o ajuste el valor de minFreeMemoryPercentageToActivateService en el elemento de configuración serviceHostingEnvironment.

    ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡3,7 GB es menos del 5% de 8 GB que nunca sabré !!

  2. Diálogo Cerrar programas para evitar la pérdida de información : cuando se usa el 75% de mi RAM, aparece un cuadro de diálogo que me dice que cierre los programas. Puede deshabilitar esto con una modificación del registro (o posiblemente deshabilitando el 'Servicio de políticas de diagnóstico').

Al final decidí volver a encenderlo. Windows simplemente simple y simple nunca fue diseñado para usarse sin un archivo de página. Está optimizado para ejecutarse con paginación, no sin él. Si planea usar más del 75% de su memoria y no desea meterse con su registro, entonces puede que no sea para usted.

Simon
fuente
1
El error de ASP.NET me parece quizás un problema de 32 bits, pero si el número que proporcionó es correcto (399556608 = 399,556,608), entonces el error es correcto: ~ 400 MB es aproximadamente el 5% de 8 GB.
cercado el
@fencepost good catch - debe haber leído eso como kb por alguna razón. raro
Simon
5

La única persona que puede decirle si sus servidores o estaciones de trabajo "necesitan" un archivo de página es usted , con un uso cuidadoso del monitor de rendimiento o como se llame en estos días. ¿Qué aplicaciones está ejecutando, qué uso están viendo y cuál es el mayor uso de memoria posible que podría ver?

¿Vale la pena comprometer la estabilidad en aras de ahorrar una pequeña cantidad de dinero en discos duros más pequeños?

Qué sucede cuando descargas un parche muy grande, por ejemplo, un paquete de servicio. Si el servicio del instalador decide que necesita más memoria de la que pensaste para desempaquetar el parche, ¿entonces qué? Si su escáner de virus (con razón) decide escanear este paquete muy grande, ¿qué tipo de uso de memoria necesitará mientras desempaqueta y escanea este archivo de parche? Espero que el archivo de parche no contenga ningún archivo en sí, porque eso sería absolutamente cifras de uso de memoria de asesinato .

Lo que sí puedo decirte es que eliminar el archivo de tu página tiene muchas más probabilidades de dañar que ayudar. No puedo ver una razón por la que no tendrías una: estoy seguro de que podría haber algunos casos especializados en los que me equivoco en esa, pero esa es otra área.

Rob Moir
fuente
2

Su memoria total disponible es su archivo de paginación + memoria real.

La pregunta clave es si su uso de memoria total previsto para todas las aplicaciones y el uso del sistema operativo se acerca a los 8 GB. Si su uso promedio de memoria es de 2 GB y su uso máximo de memoria es de solo 4 GB, entonces tener un archivo de página no tiene sentido. Si su uso máximo de memoria está más cerca de 6-7 Gb o más de lo que es una buena idea tener un archivo de página.

PD: ¡No olvides permitir el crecimiento en el futuro!


fuente
¿No te refieres a la memoria total potencialmente disponible? La mayoría de los sistemas de paginación guardan copias de la página de instantáneas.
Jé Queue
Tenga en cuenta que también existe la memoria de grupo paginado, que puede agotarse aunque solo use 2 GB de memoria física.
Tamara Wijsman
2

Parece que muchas personas severamente limitadas tienen una opinión sobre este tema, pero nunca han intentado ejecutar su computadora sin un archivo de página.

Pocos, si casi ninguno, lo han intentado. Aún menos parece saber cómo Windows trata el archivo de paginación. No "solo" se llena cuando te quedas sin RAM física. ¡Apuesto a que la mayoría de ustedes ni siquiera sabían que su RAM "libre" se usa como caché de archivos!

PUEDES obtener mejoras de rendimiento masivas al deshabilitar el archivo de tu página. Su sistema SERÁ más susceptible a los errores de falta de memoria (y sabe cómo responden sus aplicaciones en ese escenario, en su mayor parte, el sistema operativo simplemente termina la aplicación). Los tiempos de arranque desde el modo en espera o largos períodos de inactividad serán mucho más rápidos.

Si Microsoft realmente le permite establecer una opción por la cual el archivo de paginación SOLO se usa cuando no hay RAM física (y todos los búferes de archivos han sido descartados), entonces creo que habría poco que ganar al deshabilitar el archivo de paginación.

PÁGINAS.
fuente
Deshabilitar los resultados del archivo de página en la degradación del rendimiento, no verá ninguna mejora en el rendimiento al introducir la carga de memoria. El uso del archivo de la página solo cuando no tiene memoria ciertamente no es lo que quiere ...
Tamara Wijsman
-3

Esto es antidotal, pero ejecutamos un servidor Terminal Server de Windows Server 2003 para aproximadamente 20 usuarios, con 10-15 iniciados en ese momento y tiene 8 GB de RAM. No ejecutamos con un archivo de página y nuestro servidor se ejecuta más rápido que antes. Obviamente, esto no es una solución para todo, pero hemos corrido así durante dos años y no hemos tenido problemas que yo sepa.

Mate
fuente
1
Tiene problemas pero no los nota, considere cómo una mayor carga de memoria puede ralentizar la solicitud simultánea. Habilitar el archivo de página hace que esos momentos sean más ágiles ...
Tamara Wijsman