Configurando o SQL Server 2005 para usar toda a memória disponível no Windows Server 2003 de 32 bits - e verificando-a

1

Há uma série de perguntas ao longo desta linha - mas elas às vezes se contradizem ou não mostram como verificar corretamente se tudo está realmente funcionando - espero que isso seja abrangente ...

Estou executando o SQL Server 2005 SP3 Standard no Windows Server 2003 R2 Standard. Meu servidor tem 8GB de memória instalada - meu sistema é quase totalmente usado como um servidor de banco de dados - existem alguns serviços sendo executados neles, mas os serviços do OS + podem rodar com 1Gb de RAM.

O que eu fiz (por favor, me diga se estou fazendo algo errado):

  • / 3 GB no boot.ini. (Para aumentar a quantidade de memória disponível no espaço do usuário - info )
  • / PAE no boot.ini. (O Windows afirmou estar fazendo o PAE mesmo sem esse switch, de alguma forma.)
  • AWE ativado no SQL Server.
  • Ativado Bloquear páginas na opção de memória para usuários do sistema e serviço local. ( informações ). O SQL Server Standard parece não usar isso até a Atualização Cumulativa 4, que não está instalada no meu servidor. ( info )
  • Definir memória mínima / máxima para: 1024Mb / 5112Mb

Depois de fazer tudo o que foi dito acima, nós definitivamente vimos um nível de melhoria - mas agora gostaria de verificar minhas configurações, garantir que estou aproveitando a memória disponível. (Parece haver uma desaceleração quando max = 7Gb, então eu saí desse valor, mas pode ter sido apenas perceptivo.)

Para verificar, verifiquei os seguintes níveis no PerfMon:

  • Processo (sqlserv): Conjunto de trabalhos: 76386304
  • SQL Server (Gerenciador de memória): Memória total do servidor: 3538944 (vi um documento que observou que essa não era a memória cheia usada pelo SQL Server, por isso não tenho certeza se confie nele)

Então - minhas perguntas ...

  1. O meu máximo deve estar em torno de 7Gb? Se não, o que deveria ser?
  2. Por que a memória total do servidor é 3,5G, quando é alocada 5G?
  3. Qual é a métrica adequada para a quantidade de memória alocada para o SQL Server? O conjunto de trabalho parece um pouco grande ...
  4. Estou possivelmente faltando alguma etapa na configuração?
  5. Quaisquer recursos recomendados para começar a ajustar o sistema de cache agora?

Obrigado

    
por Rizwan Kassim 16.04.2010 / 02:06

3 respostas

2

Você não poderá usar o AWE com o Windows 2003 Standard. Você precisa do Enterprise, consulte Suporte a memória grande está disponível no Windows Server 2003 e no Windows 2000 :

PAE is the added ability of the IA32 processor to address more than 4 GB of physical memory. The following operating systems can use PAE to take advantage of physical memory beyond 4 GB:

* Microsoft Windows 2000 Advanced Server
* Microsoft Windows 2000 Datacenter Server
* Microsoft Windows Server 2003, Enterprise Edition
* Microsoft Windows Server 2003, Datacenter Edition

To enable PAE, use the /PAE switch in the Boot.ini file.

O conjunto de trabalho que você vê é de 7 MB, não 7 GB. Esse é um conjunto de trabalho normal para um processo, uma vez que o conjunto de trabalho não mede a quantidade de memória alocada para um processo, mas apenas o Conjunto de trabalhos que é sempre muito menor:

Shows the current number of bytes in the working set of this process. The working set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a certain threshold, pages are left in the working set of a process even if they are not in use. When free memory falls below a certain threshold, pages are trimmed from working sets. If they are needed, they are then soft-faulted back into the working set before they leave main memory.

Você precisa olhar para Process\Virtual Bytes :

Shows the current size, in bytes, of the virtual address space that the process is using. Use of virtual address space does not necessarily imply corresponding use of either disk or main memory pages. Virtual space is finite, and by using too much, the process can limit its ability to load libraries.

A memória do SQL Server é de 3 GB, o que é tudo o que pode alocar no Windows Standard com o switch / 3 GB.

Você precisará adquirir uma licença do Windows Enterprise ou simplesmente passar para um sistema operacional de 64 bits e uma implantação SQL de 64 bits (que é realmente a única opção sensata).

    
por 16.04.2010 / 04:19
0

Você não poderá usar todos os 8 GB de memória sem um sistema operacional de 64 bits.

    
por 16.04.2010 / 03:52
0

FYR:

Para o Windows 2003 Standard edition com 32 bits, o limite máximo de memória é de 4 GB.

link

    
por 20.04.2010 / 12:53