sexta-feira, 19 de janeiro de 2018

Entendendo os arquivos de paginação

Utilizado por sistemas operacionais Microsoft, o arquivo de paginação Pagefile.sys, popularmente conhecido como “memória virtual”, é utilizado como extensão da memória física (RAM), bem como para manter ou suportar despejos de memória do sistema operacional.

Além disso, esse arquivo permite que o sistema remova da memória física as páginas modificadas e pouco acessadas, com o objetivo de otimizar o uso da memória física.
Uma das características fundamentais de sistemas operacionais de 64 bits é suportar mais memória física (RAM) se comparado com versões de 32 bits.

Assim, se houver uma grande quantidade de memória física instalada, o uso de um arquivo de paginação pode ser dispensável para manter a carga de confirmações do sistema durante picos de utilização, pois por si só a memória física disponível pode ser grande o suficiente para fazer isso.

Entretanto, um arquivo de paginação ainda se faz necessário para a criação de um arquivo de despejo de memória durante falhas do sistema operacional. Para isso, um arquivo de paginação deverá existir e ser grande o suficiente para armazenar as informações geradas durante o despejo de memória. Sem isso, o dump não será criado durante as falhas e dificultará substancialmente o processo de troubleshooting.

Uma dúvida extremamente comum é: Qual o tamanho ideal para o arquivo de paginação?
Infelizmente, de “bate pronto” a melhor resposta é: Depende. Depende da versão e da arquitetura do sistema operacional (32 ou 64 Bits), da quantidade de memória RAM e da configuração do despejo de memória.

Além disso, a carga de confirmações efetuadas pelo sistema operacional não pode exceder o limite de confirmações do sistema. Tal limite é determinado pela soma da memória física (RAM) e de *todos* os arquivos de paginação combinados. Logo, na falta de arquivos de paginação, o limite de confirmações do sistema será ligeiramente menor que a memória física instalada. O pico de uso da memória comprometida do sistema pode variar consideravelmente entre sistemas e isso determinará o tamanho ideal do arquivo de paginação.

Nota: Determinados produtos ou serviços Microsoft exigem ou podem exigir configurações específicas dos arquivos de paginação, entretanto, o objetivo primário desse artigo não é discutir essas particularidades.

Sistemas operacionais Microsoft permitem que os arquivos de paginação sejam gerenciados automaticamente pelo sistema. Essa configuração é ativada por padrão e permite que os arquivos de paginação aumentem e diminuam de tamanho com base em diversos fatores, como a quantidade de memória física instalada, o processo de acomodação da carga de confirmações do sistema e o processo de acomodação de um despejo de memória do sistema. 

Os arquivos de paginação gerenciados automaticamente crescem até três vezes a memória física (RAM) ou até 4 GB (o que for maior) quando a carga de confirmações do sistema atinge 90% do limite de confirmações do sistema.

A tabela a seguir lista os tamanhos mínimos e máximos de arquivos de paginação gerenciados pelo sistema e pode, de alguma forma servir como referência para administradores que desejam definir as configurações manualmente.

Sistema operacional
Tamanho de arquivo de paginação mínimo
Tamanho de arquivo de paginação máximo
Windows XP e Windows Server 2003 com menos de 1 GB de RAM
1,5 x RAM
3 x RAM ou 4 GB, o que for maior
Windows XP e Windows Server 2003 com mais de 1 GB de RAM
1 x RAM
3 x RAM ou 4 GB, o que for maior
Windows Vista e Windows Server 2008
1 x RAM
3 x RAM ou 4 GB, o que for maior
Windows 7 e Windows Server 2008 R2
1 x RAM
3 x RAM ou 4 GB, o que for maior
Windows 8 e Windows Server 2012
Depende da configuração de despejo de memória*
3 x RAM ou 4 GB, o que for maior
Windows 8.1 e Windows Server 2012 R2
Depende da configuração de despejo de memória*
3 x RAM ou 4 GB, o que for maior
Isso nos permite concluir que é necessário espaço em disco para permitir o armazenamento e o crescimento do arquivo.

Erros de parada ocorrem por diversas razões onde o sistema não consegue ser executado corretamente. Esse evento gera o que chamamos de “Dump Memory” ou “despejo de memória”, despejando em um arquivo nomeado “memory.dmp” diversas informações que poderão ser utilizadas para determinar a causa da falha.

Nesse caso, um arquivo de paginação ou um arquivo de despejo deve ser grande o suficiente para manter o tipo de despejo de memória previamente configurado.

Abaixo tabela de referência.

Configuração do despejo de memória do sistema
Requisito de tamanho de arquivo de paginação mínimo
Despejo de memória pequeno (256 KB)
1 MB
Despejo de memória do kernel
Depende do uso de memória virtual do kernel
Despejo de memória completo
1 x RAM mais 257 MB*
Despejo de memória automático
Depende do uso de memória virtual do kernel.

* 1 MB de dados de cabeçalho e drivers de dispositivo podem totalizar 256 MB de dados secundários de despejo de memória.

Disponível a partir do Windows 8 e do Windows Server 2012 o recurso "Despejo de memória automático" é habilitado por padrão e refere-se a uma nova configuração e não a um novo tipo de despejo de memória. A principal característica dessa configuração é determinar automaticamente o melhor tamanho de arquivo de paginação, dependendo da frequência das falhas do sistema. 

O despejo de memória automático determina inicialmente um tamanho de arquivo de paginação pequeno e acomoda a memória do kernel na maior parte do tempo. Se no período de quatro semanas o sistema falhar, o recurso de despejo de memória automático determinará o tamanho do arquivo de paginação igual ao tamanho da memória RAM ou 32 GB, o que for menor. 

Arquivos de despejo dedicados


Um arquivo de despejo dedicado é um arquivo de paginação que não é usado para paginação e sim para manter um arquivo de despejo de falha do sistema (memory.dmp) em casos de falha. Arquivos de despejo dedicados podem ser armazenados em qualquer volume de disco que suporte arquivos de paginação. A utilização de arquivos de despejo dedicados ou requer alteração em chaves de registro.