Pregunta ¿Hay algún inconveniente en el interruptor "/ 3Gb" en boot.ini para Windows de 32 bits?


Los consejos de Microsoft para usar el conmutador / 3Gb en Boot.ini para obtener más memoria para un proceso que se ejecuta en el sistema de 32 bits.

Actualmente necesito mucha memoria para devenv proceso (Visual Studio 2008) porque tengo una solución compleja que tiene muchos proyectos y formas y consume muchos recursos en tiempo de diseño.

Me gustaría preguntar, si alguien sabe, cuáles son los aspectos negativos del uso del conmutador / 3Gb, ¿existen circunstancias en las que no se recomienda su uso?


8
2018-06-17 15:19


origen


Gracias a todos los que respondieron, todas las publicaciones son muy informativas y hay muchas consideraciones que deben tenerse en cuenta. También leí algo de documentación y noté que para MS SQL Server no lo necesita, incluso para sistemas de 32 bits, podría habilitar las Extensiones de viento de dirección (AWE) technet.microsoft.com/en-us/library/ms190673.aspx - Bogdan_Ch


Respuestas:


En una máquina de escritorio, probablemente no haya problemas. El grupo paginado del kernel es más pequeño en una máquina W2K3 / WXP con el conjunto de interruptores / 3GB. Es probable que esto no sea un problema para una máquina de escritorio porque no debería estar cerca de agotar su grupo paginado del kernel. En un servidor, agotar la agrupación paginada del kernel le causará problemas, y es mucho más probable que pueda agotarlo.

Aquí hay algunos buenos detalles sobre las consideraciones de memoria del kernel asociadas con el conmutador / 3GB. Si realmente lo desea, puede iniciar el depurador de kernel NT y perfilar su sistema antes y después del cambio con la información en este documento: http://blogs.technet.com/markrussinovich/archive/2009/03/26/3211216.aspx 


11
2018-06-17 15:26



Siempre me pregunto, cuando me votan, por qué Estoy recibiendo downvotes. No creo que nada en esta publicación sea de hecho incorrecto, pero si fuera así, querría saberlo para poder eliminar la publicación o corregirla. Tengo curiosidad por saber cuál es el problema que tienen los downvoters ... (y, por supuesto, me doy cuenta de que nunca volverán para responder a este comentario ... oh, bueno ...) - Evan Anderson


Tendrá menos memoria disponible para su kernel: el interruptor ajusta el espacio de direcciones del modo de kernel / espacio de direcciones del modo de usuario dividido, previamente de 2GB a 2GB, de 1GB a 3GB. Leer El post de Raymond Chen en / 3GB, y los seguimientos, antes de proceder.


5
2018-06-17 15:25





Antes de realizar cambios, primero debe comprobar si los procesos que desea ejecutar están vinculados con el indicador LARGEADDRESSAWARE. Con la bandera, no habrá cambios en la forma en que el proceso utiliza la memoria.

Puedes usar las herramientas del SDK para esto:

dumpbin / headers exeName

Los encabezados escupidos deben incluir:

La aplicación puede manejar grandes (> 2GB)   direcciones

Hice la comprobación de devenv.exe y en VS2008 incluye la bandera.


5
2018-06-17 15:44





Un montón de inconvenientes. De manera predeterminada, Windows asignará un grupo de memoria de 4GB a cada proceso, que se divide 50/50 entre los procesos en modo kernel (comunes a todas las aplicaciones) y los procesos en modo usuario (exclusivos para cada aplicación) (explicación simplificada). Por lo tanto, una aplicación que se ejecuta en el sistema tiene 2 GB de memoria para jugar, mientras que el sistema en sí tiene su propio 2 GB. Nota importante: este segundo 2GB es el mismo 2GB para todas las aplicaciones que se ejecutan en el sistema.

El interruptor / 3GB ajusta la división para que el modo kernel obtenga 1GB y el modo de usuario obtenga 3GB.

Ahora considera las aplicaciones que estás ejecutando. Algunos de ellos requerirán más espacio en modo kernel, otros requerirán más espacio en modo usuario. A medida que se comparte el grupo de modo kernel, puede quedarse rápidamente sin memoria allí si está ejecutando aplicaciones que ponen la memoria en modo kernel bajo presión. Por otro lado, si sus aplicaciones utilizan mucha memoria de modo de usuario, la implementación de / 3GB les dará el espacio que requieren.

Así que es realmente debido a la naturaleza de las aplicaciones que desea ejecutar. La regla de oro es consultar al proveedor de la aplicación y leer la documentación; en particular, si el proveedor de la aplicación no tiene una recomendación, debe comenzar a sospechar ... ¿han probado su aplicación correctamente o no? Esto es algo básico que todo vendedor debería saber.

Hay una buena discusión de todo esto aquí: http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx

En su caso particular, creo que cambiar a 64 bits y obtener más RAM será una solución más viable, ya que / 3GB realmente no le dará lo que quiere (¿funciona incluso en XP?)


4
2018-06-17 18:59



Creo que, en lugar de "grupo de modo de kernel" es mejor decir "espacio de direcciones virtuales de kernel". También "compartido" significa para mí "idéntico para todas las aplicaciones". ¿Es tan? - dma_k


Lo hemos usado en un par de sistemas que ejecutaban aplicaciones de procesamiento de imágenes en muchas imágenes grandes, y nunca notamos ningún problema. En cualquier situación en la que necesite el Gig adicional de memoria de la aplicación, es probable que deje que la aplicación se ejecute y no haga nada más con el sistema, por lo que probablemente no tendrá mucho impacto.


1
2018-06-17 15:26





Lo he visto interferir con las tarjetas de video de formas extrañas. Pero cualquier conductor puede portarse mal con este interruptor si no está escrito correctamente.

A veces, estos problemas pueden solucionarse con la adición del modificador / USERVA.

http://support.microsoft.com/kb/319043
http://support.microsoft.com/kb/833721
http://support.microsoft.com/kb/839490
http://support.microsoft.com/kb/316739


1
2018-06-17 15:46





Solo funciona de manera confiable (excepto para la depuración de controladores, etc.) en un sistema operativo de servidor empresarial para binarios LARGEADDRESSAWARE.

Devenv no es tan binario. SQL Server y Exchange son, por ejemplo.

Necesitarías un sistema operativo de 64 bits y VS x64 editar: LARGEADDRESSAWARE se detecta en x64 para romper el límite de 2GB.


1
2018-06-17 16:58



actaully devenv.exe es largeaddressaware. - Jack Bolding
correcto, me lo perdí en mi edición sobre x64. Editado de nuevo - gbn