¿Todavía necesito usar memoria virtual?

14

Pensé que esto ya se había preguntado, pero parece que no puedo encontrarlo.

¿En qué punto ya no necesito la memoria virtual habilitada? Con 4 GB de RAM, veo que la computadora rara vez usa algo cerca de todo. En ese punto, la memoria virtual no es estrictamente necesaria. ¿Hay peligro en apagarlo? ¿Hay características que perderé si lo hago?

Steve Rowe
fuente
1
Atención: Sólo hay una cantidad limitada de memoria dada a los conductores, llamado non-pagedy pagedpiscina secciones de memoria. Es necesario un archivo de página para cuando la sección paginada se llena, como jugador, he visto un juego quejarse de la memoria de grupo paginada solo porque tenía mi archivo de página deshabilitado en un sistema de 8 GB. Conclusión: los archivos de página son necesarios, evitan el agotamiento de la agrupación paginada y realmente aceleran su sistema.
Tamara Wijsman

Respuestas:

9

Dado que la memoria ya no es exactamente un recurso escaso en las PC de escritorio / portátiles, dudo que la mayoría de los programas puedan manejar las condiciones de falta de memoria con gracia y se bloqueen en su lugar.
Entonces: ¿ peligroso? Sí , si sus 4GB están agotados de alguna manera y no tiene un archivo de paginación, las aplicaciones pueden comenzar a fallar.
Y como se muestra en el ejemplo de Zoran, puede ser difícil identificar el problema más adelante.

El artículo, al que se refiere Ram, también afirma que desactivar el intercambio generalmente no mejora la velocidad y puede hacer lo contrario :

Entonces, aunque puede haber algunas cargas de trabajo que funcionen mejor sin archivo de paginación, en general tener una significará que habrá más memoria disponible para el sistema

temeroso
fuente
Tendré que desenterrar el artículo en el sitio de MS, pero MS dice que siempre debe tener un archivo de paginación. Incluso en sistemas de alta memoria, no tener uno puede hacer que su máquina funcione más lentamente.
Keltari
10

Consulte el artículo de Mark Russinovich sobre Memoria virtual. Eso debería darle un buen puntero sobre la memoria virtual.

Aquí hay un extracto útil del enlace.

Entonces, ¿cómo sabe cuánto cargo de compromiso requieren sus cargas de trabajo? Es posible que haya notado en las capturas de pantalla que Windows rastrea ese número y Process Explorer lo muestra: Peak Commit Charge. Para dimensionar de manera óptima su archivo de paginación, debe iniciar todas las aplicaciones que ejecuta al mismo tiempo, cargar conjuntos de datos típicos y luego observar el pico de carga de confirmación (o mirar este valor después de un período de tiempo en el que sabe que se alcanzó la carga máxima) . Establezca el mínimo de archivo de paginación para que sea ese valor menos la cantidad de RAM en su sistema (si el valor es negativo, elija un tamaño mínimo para permitir el tipo de volcado por caída para el que está configurado). Si desea tener un respiro para demandas de compromiso potencialmente grandes, establezca el máximo para duplicar ese número.

Prabhu R
fuente
+1 para referencia de Mark Russinovich. Siempre una gran lectura.
mrduclaw
3

Esta publicación clásica en ServerFault tiene algunos buenos puntos. Por solo 4 GB, dejaría solo el archivo de paginación, y el espacio involucrado en el disco es menor en cualquier caso.

MartW
fuente
3

Recomiendo dejar las configuraciones de memoria virtual a sus valores predeterminados. Tengo 8 GB de RAM y apagué la memoria virtual pensando que ganaría velocidad (debido a que no cambiaría), pero resulta que hizo que mi sistema fuera menos estable (y lo hice en 2 máquinas, resultado similar). Estaba experimentando un BSOD por semana aproximadamente, en ambas máquinas. Comencé a examinar los minidumps producidos y descubrí que todos los BSOD se activaron por una llamada a una rutina llamada KiPageFault. Así que traté de restablecer la configuración de la memoria virtual a sus valores predeterminados, y los BSOD normales desaparecieron.

Me tomó bastante tiempo correlacionar los 2, y no tengo evidencia real de que el hecho de que apagué la memoria virtual causara los BSOD, pero mis máquinas estaban más estables después de volver a encenderlas ...

Zoran
fuente
Gracias. Es bueno escuchar resultados reales y no solo suposiciones.
Steve Rowe el
0

Depende de cuál sea su carga de trabajo. He configurado un montón de interfaces sin disco para una aplicación web. Arrancaron en red y ejecutaron todo lo que necesitaban dentro de los 8 GB de RAM.

También he usado Windows (probablemente 98) con 32 MB y sin archivo de paginación, por supuesto, tiene que vivir en ese espacio de memoria y limitar sus aplicaciones para adaptarse a los recursos.

Desea asegurarse de que haya algo de RAM adicional para el caché del disco, de lo contrario el rendimiento puede volverse horrible.

Me parece recordar que hay algunos programas que no se ejecutarán sin VM, pero no tengo idea de lo que eran

gnibbler
fuente
-2

Bueno, Steve, interesante que debas preguntar eso.

Te diré un pequeño secreto: el punto en el que necesitabas memoria virtual nunca fue. La memoria virtual fue una idea increíblemente incompetente creada por un grupo de académicos que sabían cero acerca de los sistemas informáticos prácticos, y CUALQUIER computadora funcionará mucho mejor si se puede hacer que funcione sin VM.

Ahora, podría preguntarse, si VM es inútil y dañina, ¿por qué la usan la mayoría de los sistemas operativos modernos? La respuesta breve a esta pregunta es que las personas que decidieron si usar VM o no en Microsoft, Apple e IBM fueron aún más estúpidas e inexpertas que los académicos que inventaron VM y quisieron adoptarlo en base a los mismos supuestos completamente incorrectos que el los académicos tenían cuando lo inventaron. Podríamos comenzar a hablar sobre esas suposiciones y conceptos erróneos, pero desafortunadamente, si fueran fáciles de entender y describir, no tendríamos el problema de VM en primer lugar.

Volviendo a ti. Desafortunadamente, al igual que los tardnoggins mencionados anteriormente en Apple y Microsoft, tiene sus propios conceptos erróneos, a saber, la idea de que puede apagar VM. Por supuesto, no puedes apagarlo, eso frustraría todo el propósito de atornillarte si solo pudieras apagarlo. Cuando las personas hacen algo realmente estúpido, siempre se aseguran de que sea irreversible. Después de todo, si todos pudieran apagar VM, lo harían, y eso haría que los bozos que lo crearon se vieran bastante estúpidos, ¿no? Previnieron esta posibilidad haciéndola inamovible, algo así como Microsoft hizo que Internet Explorer no se pudiera quitar.

Lo que puede hacer es limitar el tamaño del archivo de página, que, por supuesto, debe establecerse en el mínimo, con suerte 0. Memoria virtual todavía está allí, pero al menos puede reducirlo de muy muy muy lento a muy muy lento pidiéndole que no involucre la unidad de disco en la locura.

Tyler Durden
fuente
La memoria virtual permite muchas cosas buenas. Si no tuviera memoria virtual, tendría que tener suficiente RAM para contener cada byte de código y datos que cada proceso en su sistema define, independientemente de si alguna vez se hizo referencia o no. Dado que la mayoría de los programas pasan el 90% de su tiempo usando el 10% de su código y datos, esto sería un gran desperdicio. También perdería muchas otras cosas útiles, que el formato de comentario aquí no me da espacio para describir. La razón por la que no hemos abandonado la memoria virtual es que sigue siendo una muy, muy buena idea. Incluso en "sistemas informáticos prácticos".
Jamie Hanrahan
@RickBrant Suenas como los ingenieros eléctricos idiotas de Intel e IBM que solía tener que escuchar en la década de 1980 tratando de explicar por qué VM era una buena idea. Recuerdo cuando IBM lanzó OS / 2, que fue el primer sistema operativo dañado cerebralmente con VM, y tuve que escucharlos explicar por qué era una gran idea. Bueno, gracias a Dios OS / 2 murió, pero desafortunadamente VM continuó, como un zombie, así que aquí es 2017 y todavía estoy escuchando estas tonterías. Apuesto dólares a las donas que no tienes un título de CS, haz ¿tú? Esa es la parte de broma. El 99% de los chicos que promocionan VM no son programadores
Tyler Durden
De hecho, tenía una doble especialización, CS / EE, en una de las mejores escuelas de tecnología de la costa oeste. Hoy soy principalmente programador, pero interactúo con tipos de hardware. Ahora, ¿tiene una refutación convincente hasta el punto de que sería un desperdicio tener que mantener hasta el último byte de código y datos que un programa define en la RAM en todo momento, ya sea que lo necesite o no? Porque la memoria virtual evita eso. ¿O vas a continuar con ataques personales que equivalen a "debes ser un idiota"?
Jamie Hanrahan
Ah, y re "OS / 2, que fue el primer sistema operativo dañado cerebralmente con VM" , Um, no, no por cerca de dos décadas. Tal vez el primer sistema operativo ampliamente utilizado para PC. (Pero no el primero para "computadoras personales".)
Jamie Hanrahan