Large Memory Support: Address Windowing Extensions (AWE)
Address Windowing Extensions (AWE) são um conjunto de extensões que permitem a uma aplicação rapidamente manipular memória física - para lá do limite dos 4GB.
Algumas aplicações que acedem a informação de uma forma intensiva, tais como bases de dados, necessitam de uma grande cache. Ao aceder a um grande ficheiro, estar a restringir o tamanho da cache para “caber” dentro dos 2GB de espaço de endereçamento aplicacional (User Mode) pode ser uma restrição muito severa dado que a cache poderá ser muito pequena para suportar os requisitos da aplicação.
O AWE vem solucionar este problema, permitindo que as aplicações possam endereçar directamente grandes quantidades de memória, ao mesmo tempo que continuam com o endereçamento 32 bits. O AWE permite que as aplicações possam usar caches maiores que 4GB (desde que exista memória física disponível). O AWE usa memória física nonpaged pool e o sistema operativo vê esta memória dentro do espaço de endereçamento virtual 32 bits.
Não querendo entrar em muitos detalhes sobre esta funcionalidade, importa referir que um dos grandes benefícios do AWE é o rápido mapeamento, re-mapeamento e libertação de memória.
Afim de poder tirar partido desta funcionalidade, uma aplicação tem de ter o seguinte privilégio: Lock Pages in Memory
O Lock Pages in Memory é uma opção se segurança do Windows que determina quais as contas que podem manter informação em memória física, afim de impedir que o sistema faça paging dessa informação para disco. Esta politica está desactivada por defeito e tem de ser activada para podermos configurar o AWE nas aplicações.
Exemplo: Activar a opção Lock Pages in Memory para a Base de Dados SQL
Aplica-se a: SQL Server 2000 enterprise, SQL Server 2005 e SQL Server 2008.
1) Start => Run => gpedit.msc
2) Na consola Group Policy, navegar até à seguinte localização:
Computer Configuration, Windows Settings, Security Settings, Local Policies.
3) Selectionar a pasta: User Rights Assignment
duplo-click em, Lock pages in memory
4) Adicionar a conta que se usa para executar o serviço MSSQLSERVER
Informação relacionada.
As seguintes funções fazem parte da API Address Windowing Extensions (AWE) e podem encontrar mais detalhas nos links de cada uma:
Function |
Description |
VirtualAlloc and VirtualAllocEx | Reserve a portion of virtual address space to use for AWE, using MEM_PHYSICAL. |
AllocateUserPhysicalPages | Allocate physical memory for use with AWE. |
MapUserPhysicalPages | Map (or invalidate) AWE virtual addresses onto any set of physical pages obtained with AllocateUserPhysicalPages. |
MapUserPhysicalPagesScatter | Map (or invalidate) AWE virtual addresses onto any set of physical pages obtained with AllocateUserPhysicalPages, but with finer control than that provided by MapUserPhysicalPages. |
FreeUserPhysicalPages | Free physical memory that was used for AWE. |
AL