Nonpaged Pool: o que é e como vizualizar

O “nonpaged pool” é um espaço de memória que está sempre na memória física, ou seja, nunca é paginado. Ele é usado pelo kernel e também por drivers de dispositivo instalados no sistema para guardar dados que poderão ser acessados em situações onde “page faults” (uma interrupção disparada pelo hardware, quando um programa acessa um dado mapeado na memória virtual) não são permitidos. A quantidade de memória alocada para o “nonpaged pool” varia e é determinado em função do sistema operacional, arquitetura do processador e tamanho da memória física. Por exemplo, sistemas operacionais 32 bits, com poucos espaços de endereçamento tem baixos limites:

  • Windows Server 2003 32 bits com 2GB ou mais de RAM vão ter um limite de 256MB no “nonpaged pool”.
  • Windows Server 2008 32 bits tem um limite de até 2GB ou 75% da memória física, o que for menor.

Sistemas operacionais de 64 bits, com muitos espaços de endereçamento tem limites superiores:

  • Windows Server 2003 64 bits pode ter até 128GB ou 40% da memória fisica para “nonpaged pool”.
  • Windows Server 2008 (ou R2) de 64 bits tem um limite de 128GB ou até 75% da memória física, o que for menor.

Como vizualizar o Nonpaged pool

Uma maneira de ver o limite para “nonpaged pool” em um sistema é instalando o “Debugging Tools for Windows” e então utilizando o Process Explorer do pacote SysInternals para mostrar o tamanho do pool (as debugging tools são necessárias para prover acesso aos debugging symbols).

Uma vez que as ferramentas foram baixadas e instaladas, execute o Processs Explorer e clique em Options -> Symbol Configuration, aponte ele para o arquivo dbghelp.dll instalado com as Debugging Tools e configure o Microsoft symbol server como o caminho o symbol.

nonpaged pool, configurando Symbols

* No meu caso, o caminho para o Dbghelp.dll foi C:\Program Files (x86)\Windows Kits\8.1\Debuggers\x64\dbghelp.dll utilizando o Symbols path: SRV*c:\temp\websymbols*http://msdl.microsoft.com/downloads/symbols

A tamanho do “nonpaged pool” pode ser encontrado na tela System Information (clique em View -> System Information na aba Memory:

nonpaged

Meu sistema está configurado com 2GB de memória e o limite para o “Nonpaged” é 1.5GB, exatamente 75% da memória RAM.

Porque falamos disso?

Durante a semana iremos postar sobre como visualizar o que está rodando no “Nonpaged Pool” para troubleshooting de memory leak.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *