Lock Pages in Memory

No SQL Server o Lock Pages in Memory serve para prevenir que o SQL Server faça paginação das páginas do buffer pool. Esta configuração é útil quando o impacto de performance está sendo causado pela quantidade de páginas recicladas do buffer pool.

De maneira bem simplificada, o Windows roda todos os seus processos em uma área dedicada de memória virtual que é conhecida como VAS (Virtual Address Space) e esta é dividida em duas regiões: a de sistema (Kernel) e a de usuário (app).
Na região do Kernel é mapeado diversas estruturas de sistema do OS como o file cache, paginado ou não.
No caso do User Mode Server, aloca-se os processos de aplicações que estão sendo executadas no momento, neste caso incluímos o SQL Server.

Quando habilitamos o Lock Page in Memory para a conta do SQL Server, estamos falando para que a alocação de buffer pool utilize a chamada da função AWE API. Desta maneira, a memória é considerada locked, ou seja, não será paginável e deve estar na área de Kernel (physical memory server).

Tudo parece bem, mas a possibilidade de erro surge quando o SQLOS não pode responder à tempo a solicitação da API do Windows QueryMemoryResourceNotification que é responsável pelo flag que reduz o consumo de memória.

Simplificando, é uma pressão de memória causada por qualquer aplicativo ou anomalia do sistema que deixa o Windows sem memória (Out Of Memory). Sendo assim, o SQLOS não terá tempo para devolver memória ao processo do Windows.

Se houver uma configuração adequada do Max Server Memory, talvez seja possível contornar a possibilidade de Out Of Memory. A melhor recomendação é definir um valor baixo para este parâmetro e ir aumentando gradativamente. Juntamente deve-se ir acompanhando o contador Memory\Available MBytes.

Dúvidas? Entre em contato conosco! 😉

Bibliografia
Denlaney, K. et al. Microsoft SQL Server 2012 Internals. 1a ed. Microsoft Press.
Microsoft Support. Disponível em: http://support.microsoft.com/kb/918483 Acesso em: 22 de ag 2019.
CSS SQL Server Engineers. Disponível em: http://blogs.msdn.com/b/psssql/archive/2012/03/20/setfileiooverlappedrange-can-lead-to-unexpected-behavior-for-sql-server-2008-r2-or-sql-server-2012-denali.aspx Acesso em: 22 de ag 2019.
Docs Microsoft. Disponível em: https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/enable-the-lock-pages-in-memory-option-windows?view=sql-server-2017 Acesso em : 22 de ag 2019.

 

Por Rodrigo Crespi

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Artigos Recentes

Alta Disponibilidade De Postgres No Azure

Fale Conosco

Converse com nossos especialistas e descubra como transformar seus dados em informações seguras, disponíveis e acessíveis.

Endereço

Rua Angelo Antonello, 93 – Sala 62, Centro – Farroupilha/RS – CEP: 95170-492

Contato Comercial

Email: [email protected]
Telefone: (54) 3401-1471

Abrir bate-papo
Olá
Podemos ajudar?