Existem desvantagens da opção "/ 3Gb" no boot.ini para Windows de 32 bits?


8

A Microsoft recomenda usar a opção / 3Gb no Boot.ini para obter mais memória para um processo em execução no sistema de 32 bits.

Atualmente, preciso de muita memória para o processo devenv (Visual Studio 2008) porque tenho uma solução complexa que possui muitos projetos e formulários e consome muitos recursos em tempo de design.

Gostaria de perguntar, se alguém souber, quais são os aspectos negativos do uso da opção / 3Gb, existem circunstâncias em que não é recomendável usá-lo.


Obrigado a todos que responderam, todas as postagens são muito informativas e há muitas considerações a serem levadas em consideração. Também li algumas documentações e notei que, para o MS SQL Server, você não precisa disso, mesmo em sistemas de 32 bits, é possível ativar o AWE (Address Windowing Extensions) technet.microsoft.com/en-us/library/ms190673.aspx
Bogdan_Ch

Respostas:


11

Em uma máquina de mesa, provavelmente não há problemas. O pool paginado do kernel é menor em uma máquina W2K3 / WXP com o conjunto de opções / 3GB. Provavelmente, isso não é um problema para uma máquina de desktop, porque você não deve estar nem perto de esgotar o pool paginável do kernel. Em um servidor, esgotar o pool paginável do kernel causará problemas e é muito mais provável que você possa esgotá-lo.

Aqui estão alguns bons detalhes sobre as considerações de memória do kernel associadas à opção / 3GB. Se você realmente deseja, pode iniciar o depurador do kernel do NT e criar um perfil do seu sistema antes e depois da alteração com as informações deste documento: http://blogs.technet.com/markrussinovich/archive/2009/03/26 /3211216.aspx


3
Sempre me pergunto, quando recebo votos negativos, por que estou recebendo votos negativos. Não acredito que nada nesta postagem seja factualmente incorreto, mas, se fosse, eu gostaria de saber para poder excluir a postagem ou corrigi-la. Estou curioso para saber qual é o problema que os downvoters têm com ele ... (e, é claro, percebo que eles nunca voltarão para responder a esse comentário ... oh, bem ...)
Evan Anderson

5

Você terá menos memória disponível no seu kernel - a opção ajusta a divisão do espaço de endereço no modo kernel / espaço de endereço no modo usuário, anteriormente de 2 GB a 2 GB, de 1 GB a 3 GB. Leia a publicação de Raymond Chen em / 3GB e os acompanhamentos antes de prosseguir.


5

Antes de fazer alterações, verifique primeiro se os processos que deseja executar estão vinculados ao sinalizador LARGEADDRESSAWARE. Com o sinalizador, não haverá alterações na maneira como o processo usa memória.

Você pode usar as ferramentas do SDK para isso:

dumpbin / headers exeName

Os cabeçalhos cuspidos devem incluir:

O aplicativo pode lidar com endereços grandes (> 2 GB)

Eu fiz a verificação no devenv.exe e no VS2008 inclui a bandeira.


4

Muitas desvantagens. Por padrão, o Windows alocará um pool de memória de 4 GB para cada processo, dividido em 50/50 entre os processos no modo kernel (comuns a todos os aplicativos) e processos no modo usuário (exclusivos para cada aplicativo) (explicação simplificada). Portanto, um aplicativo em execução no sistema possui 2 GB de memória para jogar, enquanto o próprio sistema possui seus próprios 2 GB. Nota importante: este segundo 2 GB é o mesmo 2 GB para todos os aplicativos em execução no sistema.

A opção / 3GB ajusta a divisão para que o modo kernel obtenha 1 GB e o modo usuário obtenha 3 GB.

Agora considere os aplicativos que você está executando. Alguns deles exigirão mais espaço no modo kernel, outros exigirão mais espaço no modo usuário. Como o pool do modo kernel é compartilhado, você pode ficar sem memória rapidamente se estiver executando aplicativos que pressionam a memória do modo kernel. Por outro lado, se seus aplicativos usarem muita memória no modo de usuário, a implementação de / 3GB fornecerá o espaço necessário para eles.

Portanto, é realmente a natureza dos aplicativos que você deseja executar. A regra de ouro é consultar o fornecedor do aplicativo e ler a documentação; em particular, se o fornecedor do aplicativo não tiver uma recomendação, você deve começar a suspeitar ... eles testaram o aplicativo adequadamente ou não? Isso é algo básico que todo fornecedor deve saber.

Há uma discussão muito boa sobre tudo isso aqui: http://blogs.technet.com/askperf/archive/2007/03/23/memory-management-demystifying-3gb.aspx

No seu caso particular, acho que mudar para 64 bits e obter mais RAM será uma solução mais viável, já que o / 3GB não conseguirá o que você deseja (ele funciona no XP?)


Eu acho que, em vez de "pool de modo kernel", é melhor dizer "espaço de endereço virtual do kernel". Também "compartilhado" significa para mim "idêntico para todos os aplicativos". É assim?
21412 d12_12

1

Nós o usamos em alguns sistemas que executavam aplicativos de processamento de imagens em muitas imagens grandes e nunca notamos nenhum problema. Em qualquer situação em que você precise de um gig extra de memória de aplicativo, provavelmente você deixará o aplicativo executar e não fará mais nada com o sistema, portanto, provavelmente não haverá muito impacto.



1

Ele funciona apenas de maneira confiável (exceto para drivers de depuração etc.) em um sistema operacional de servidor corporativo para binários LARGEADDRESSAWARE.

devenv não é tão binário . SQL Server e Exchange são, por exemplo.

Você precisaria de um sistema operacional x64 bits e edição VS x64 : LARGEADDRESSAWARE foi detectado no x64 para quebrar o limite de 2 GB.


actaully devenv.exe é um programa de grande porte.
Jack Bolding

correto, eu perdi isso na minha edição sobre x64. Editado novamente
gbn 17/06/09
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.