SQL Server: O que é AWE?

Pessoal, meu intuito neste  pequeno post é esclarecer o que é a opção de AWE  no SQL Server e para que ela serve.
 
O SQL Server adquire e libera memória dinamicamente conforme necessário. Normalmente, um administrador não precisa especificar a quantidade de memória que deve ser alocada ao SQL Server, embora essa opção exista e seja necessária em alguns ambientes.
O SQL Server oferece suporte a AWE (Address Windowing Extensions) permitindo o uso de memória física de mais de 4 GB (gigabytes) em versões de 32 bits dos sistemas operacionais do Microsoft Windows. Há suporte para até 64 GB de memória física. As instâncias do SQL Server executadas no Microsoft Windows 2000 usam alocação de memória de AWE estática e as instâncias executadas no Microsoft Windows Server 2003 usam alocação de memória de AWE dinâmica.
 
Observação:
O suporte para AWE está disponível somente nas edições Enterprise, Standard e Developer do SQL Server e se aplica apenas a sistemas operacionais de 32 bits. O Analysis Services não pode se beneficiar da memória mapeada por AWE. Se a memória física disponível for menor do que o espaço de endereço virtual do modo de usuário, o AWE não poderá ser habilitado.
 
abraços, Maycon Alves.
 
 

2 comentários sobre “SQL Server: O que é AWE?

  1. Bom dia amigo,
    Tenho um server Standard Edition rodando em uma maquina 2003 enterprise com 8G. Como o banco é Standard ele seu max memory está limitado aos 2G. Se eu configuar o AWE para mais 2G, eu consigo dedicar no total os 4G para o sqlserver ? Isso melhora o desempenho do servidor de banco ?

    • Vou citar para você um trecho do BOL, com isto você terá uma boa resposta, desculpa a demora na resposta mais a correria está grande, segue abaixo o trecho:

      O AWE (Address Windowing Extensions) permite que sistemas operacionais de 32 bits acessem quantidades grandes de memória. Ele é exposto pelo sistema operacional e implementado de forma ligeiramente diferente no Microsoft Windows 2000 Server e Windows Server 2003. O AWE é habilitado usando Opção awe enabled.

      Usando memória mapeada para AWE com o Windows 2000 Server
      Instâncias do Microsoft SQL Server que são executadas no Windows 2000 alocam memória durante a inicialização do SQL Server de acordo com a seguinte seqüência de eventos:

      Se a memória física disponível for menor do que o espaço de endereçamento virtual do modo de usuário, o AWE não poderá ser ativado. Nesse caso, o SQL Server é executado no modo não AWE independentemente da configuração da opção awe enabled.

      Se a memória física disponível for maior do que o espaço de endereçamento virtual do modo de usuário, o AWE poderá ser ativado.

      Se a memória física disponível for maior do que o valor da opção max server memory, a instância do SQL Server bloqueará a quantidade de memória especificada em max server memory.

      Se a memória física disponível for menor do que o valor da opção max server memory ou se a opção max server memory não foi definida, a instância do SQL Server bloqueará toda a memória disponível que ultrapassar 256 MB (megabytes).

      Uma vez alocada, a memória mapeada para AWE não pode ser liberada até que o SQL Server seja desligado.

      Configurando as opções de memória
      Nós recomendamos que você configure um valor para max server memory sempre que habilitar o AWE. Quando awe enabled está definido como 1 (e a memória física disponível é maior do que o espaço de processamento do modo de usuário), as instâncias do SQL Server que executam no Windows 2000 bloqueiam quase toda a memória disponível (ou o valor max server memory se a opção tiver sido definida) quando o servidor é iniciado. Se max server memory não tiver sido definida, outros aplicativos ou instâncias do SQL Server terão menos de 128 MB de memória física disponível.

      O pool de memória mapeada para AWE não pode ser tocado por arquivos do sistema de página. O Windows tem que trocar outros aplicativos se houver necessidade de mais memória física para uso, e isso pode atrapalhar o desempenho desses aplicativos.

      Para não atrapalhar o desempenho de outros aplicativos, configure a opção max server memory de modo a deixar memória extra livre para suprir as necessidades variáveis dos outros aplicativos e do sistema operacional. Você pode determinar a quantidade de memória que pode ser alocada com segurança para as instâncias do SQL Server identificando quanto há de memória disponível depois que todos os outros aplicativos usados no computador forem iniciados.

      Observação:
      No caso do Windows 2000 Server, a opção min server memory é ignorada para o AWE do SQL Server.

      Use o contador Memória Total do Servidor (KB) do Monitor de Desempenho do SQL Server para determinar quanta memória foi alocada pela instância do SQL Server em execução no modo AWE ou selecione uso de memória em sysperfinfo.

      Para obter mais informações, consulte Monitorando o uso da memória.

      Executando várias instâncias do SQL Server com AWE
      Se seu servidor estiver executando o Windows 2000, cada instância deve ter uma configuração max server memory. Pelo fato de o SQL Server que executa em sistemas operacionais do Windows 2000 não oferecer suporte à alocação dinâmica para memória mapeada para AWE, recomendamos que a opção max server memory seja definida para cada instância.

      A soma dos valores max server memory de todas as instâncias deve ser menor do que a memória física total no computador. Se a soma for maior do que a memória física total, algumas das instâncias não iniciarão ou terão acesso a menos memória do que o especificado pela configuração max server memory. Por exemplo, suponha que um computador tenha 16 gigabytes (GB) de memória física e três instâncias do SQL Server instaladas. Além disso, max server memory está definido como 8 GB para cada instância. Se você interromper e reinicializar todas as três instâncias, a alocação de memória será da seguinte maneira:

      A primeira instância terá acesso a 8 GB de memória física.

      A segunda instância iniciará, mas terá acesso a um pouco menos do que 8 GB de memória física (até 128 MB a menos).

      A terceira instância iniciará no modo de memória dinâmico e terá acesso a 256 MB ou menos de memória física.

      Para obter mais informações, consulte Gerenciando memória para bancos de dados grandes.

      Usando memória mapeada para AWE com o Windows Server 2003
      O SQL Server aceita alocação dinâmica de memória AWE no Windows Server 2003. Durante a inicialização, o SQL Server reserva apenas uma pequena parte da memória mapeada para AWE. Como é necessária uma memória mapeada para AWE adicional, o sistema operacional a aloca dinamicamente para o SQL Server. Da mesma forma, se forem necessários menos recursos, o SQL Server pode devolver a memória mapeada para AWE ao sistema operacional para ser usada por outros processos ou aplicativos. Para obter mais informações sobre a opção de configuração awe enabled, consulte Opção awe enabled.

      A quantidade de memória física com suporte aumentou com a introdução da família Windows Server 2003. A memória física acessível pelo recurso AWE depende do sistema operacional em uso. A lista a seguir fornece o máximo de memória física acessível por cada sistema operacional do Windows Server 2003 na hora de gravar.

      O Windows Server 2003 Standard Edition oferece suporte à memória física de até 4 GB.

      O Windows Server 2003 Enterprise Edition oferece suporte a até 32 GB de memória física.

      O Windows Server 2003 Datacenter Edition oferece suporte a até 64 GB de memória física.

      Configurando as opções de memória
      O SQL Server aloca memória mapeada para AWE dinamicamente ao ser executado com quaisquer edições do sistema operacional do Windows Server 2003. Em outras palavras, o poll de buffers pode gerenciar memória mapeada para AWE dinamicamente (dentro das restrições das opçõesmin server memory e max server memory) para equilibrar o uso de memória do SQL Server com os requisitos gerais do sistema.

      Quando AWE está habilitado, o SQL Server sempre tenta usar memória mapeada para AWE. Isso se aplica a todas as configurações de memória, incluindo os computadores configurados para fornecer aplicativos com menos de 3 GB de espaço de endereçamento no modo de usuário.

      Recomendamos configurar AWE como o modo de memória padrão para o SQL Server que está sendo executado no Windows Server 2003. O recurso Inclusão de Memória a Quente requer que o AWE seja habilitado durante a inicialização do SQL Server. Para obter informações, consulte Inclusão de Memória a Quente.

      Observação:
      O recurso AWE não é necessário e não pode ser configurado nos sistemas operacionais de 64 bits.

      Uma vez que a memória mapeada para AWE é suportada para menos de 3 GB, você pode definir os valores min server memory e max server memory dentro do intervalo de memória física ou usar os valores padrão para ambas as opções.

      Você deve considerar a configuração de max server memory para SQL Server para garantir memória adicional para outros aplicativos que estão operando no computador. Apesar de o SQL Server poder liberar memória mapeada para AWE dinamicamente, a quantidade atual de memória mapeada para AWE alocada não pode ser trocada por um arquivo de página.

      Para disponibilizar o AWE para uma instância do SQL Server, use sp_configure para definir a opção awe enabled para 1 e, em seguida, reinicie o SQL Server.

      Para obter mais informações sobre min server memory e max server memory, consulte Opções de memória do servidor.

      Antes de ativar o AWE, você deve configurar a diretiva Bloquear páginas na memória. Para obter mais informações, consulte Como habilitar a opção bloquear páginas na memória (Windows).

      Exemplo
      O exemplo a seguir mostra como ativar o AWE e configurar um limite de 1 GB para min server memory e 6 GB para max server memory.

      Primeiro, configure o AWE:

      Copiar código
      sp_configure ‘show advanced options’, 1
      RECONFIGURE
      GO

      sp_configure ‘awe enabled’, 1
      RECONFIGURE
      GO

      Depois que o SQL Server reinicializar, a mensagem a seguir será gravada no log de erros do SQL Server: ‘Address Windowing Extensions enabled’.

      Em seguida, configure a memória:

      Copiar código
      sp_configure ‘min server memory’, 1024
      RECONFIGURE
      GO

      sp_configure ‘max server memory’, 6144
      RECONFIGURE
      GO

      Nesse exemplo, as configurações de memória dirigem o pool de buffers para gerenciar a memória mapeada para AWE dinamicamente entre 1 GB e 6 GB. Se outros aplicativos precisarem de mais memória, o SQL Server pode liberar a memória mapeada para AWE alocada, se ela não for necessária. Nesse exemplo, somente até 1 GB da memória mapeada para AWE pode ser liberada.

      A memória AWE dinâmica também permite que o SQL Server aumente a memória se for adicionada mais memória para um computador que aceita Inclusão de Memória a Quente. Disponível no Windows Server 2003 3, edições Enterprise e Datacenter, a Inclusão de Memória a Quente permite que seja adicionada memória enquanto o computador está executando. Por exemplo, suponha que o SQL Server, que está sendo executado no Windows Server 2003 Enterprise Edition, é iniciado em um computador com memória física de 16 GB. O sistema operacional está configurado para limitar aplicativos a 2 GB de espaço de endereçamento de memória virtual; o modo AWE foi ativado no SQL Server. Depois, o administrador do sistema adicionou 16 GB de memória enquanto o computador estava executando. O SQL Server reconhece a memória adicional imediatamente e, se necessário, pode começar a se beneficiar dela.

      Para obter mais informações sobre o uso do AWE, consulte a documentação do Windows Server 2003.

      Executando várias instâncias do SQL Server com AWE
      Se você estiver executando várias instâncias do SQL Server no mesmo computador e cada instância usar memória mapeada para AWE, você deve certificar-se de que as instâncias executem conforme o esperado.

      Se seu servidor estiver executando o Windows Server 2003, cada instância deve ter uma configuração min server memory. Como o SQL Server que executa no Windows Server 2003 oferece suporte ao gerenciamento de memória mapeada para AWE dinamicamente, recomendamos configurar a opção max server memory para cada instância. Uma vez que a memória mapeada para AWE não pode ser trocada por um arquivo de página, a soma dos valores max server memory de todas as instâncias deve ser menor do que a memória física total no computador.

      A opção min server memory não força o SQL Server a adquirir uma quantia mínima de memória na inicialização. A memória é alocada sob demanda com base na carga de trabalho do banco de dados. Entretanto, uma vez que o limite de min server memory seja alcançado, o SQL Server não liberará memória se isso deixar o SQL Server com menos memória do que o definido. Portanto, para garantir que cada instância tenha uma quantidade de memória alocada pelo menos igual ao valor min server memory, recomendamos que você faça uma carga no servidor do banco de dados logo depois da inicialização. Durante a atividade normal do servidor, a memória disponível por instância varia, mas nunca há menos do que o valor min server memory disponível para casa instância.

      Você pode definir max server memory ou deixar a opção com a configuração padrão. Deixar a opção max server memory configurada de acordo com o padrão resultará em instâncias do SQL Server competindo por memória.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s