A alteração do registro DisablePagingExecutive tem algum efeito real?

8

Em várias máquinas no passado, em diferentes versões do Windows (2000, XP e sem o Vista), habilitei o DisablePagingExecutive para tentar melhorar o desempenho. Em cada caso, e eu tive muita memória, e especialmente no caso atual. No entanto, depois de ativar esse ajuste de registro e reinicialização, verifiquei o gerenciador de tarefas depois de um tempo, e ainda mostro uma grande parte do kernel paginado para o disco, mesmo tendo 2 GB de memória física livre.

Alguém já usou esse ajuste com sucesso? Sempre? Talvez eu esteja visualizando o indicador errado ao verificar o gerenciador de tarefas (guia Desempenho - > seção "Memória do Kernel"), mas gostaria de evitar que o Windows paginasse tudo o que pudesse para o disco, especialmente considerando a quantidade de memória fornecida nos desktops nos dias de hoje. Parece que uma opção "Não paginar para disco a menos que haja pressão extrema de memória" deve existir - existe um?

    
por SqlRyan 26.05.2009 / 07:32

6 respostas

13

Há uma enorme quantidade de confusão na internet em relação a essa função. A configuração efetua apenas uma parte do kernel, conhecida como executiva, e somente as partes pagináveis. Existem outras partes do kernel que não são afetadas por esta configuração.

A paginação do kernel funciona da mesma maneira que qualquer outra paginação. Código e dados que são acessados freqüentemente serão mantidos na RAM enquanto o restante permanecerá no disco - onde ele pertence. O sistema não removerá qualquer parte do kernel da RAM, a menos que encontre um melhor uso para ele. A Microsoft dedicou uma enorme quantidade de pesquisas e testes aos sistemas de paginação.

No contexto do kernel, "Sem paginação" significa código e dados que nunca podem ser paginados em nenhuma circunstância. "Paginado" significa código e dados que podem ser paginados, se necessário. Quanto realmente é paginado é impossível dizer do Gerenciador de Tarefas. Uma parte do código que é paginada nunca foi lida do disco, porque ainda não era necessária. Nem todo o kernel é acessado com freqüência. Você não deve esperar que os números Paged e Nonpaged sejam afetados pela configuração em questão.

Nota: Quando o código é paginado, normalmente não é copiado para o arquivo de paginação. Isso não é necessário, pois pode ser simplesmente recarregado a partir dos arquivos originais. Isso se aplica à maioria dos códigos, não apenas ao kerenl.

Com uma quantidade razoável de RAM, a configuração não fará praticamente nada. Simplesmente evita que o sistema pague dados que não deseje sair de qualquer maneira.

    
por 19.08.2009 / 18:07
4

Não tenho certeza se você percebe isso, mas as falhas de página são o mecanismo que o Windows usa para carregar o código executável. Portanto, por exemplo, uma DLL é mapeada para a memória virtual e, em seguida, falhas de página são usadas para fazer o carregamento real do disco conforme necessário. O arquivo de paginação não está envolvido nisso.

Então, muito do que você pensa como "paged to disk" pode ser algo que estava no disco em primeiro lugar.

    
por 26.05.2009 / 12:09
2

O ajuste DisablePagingExecutive não interrompe a paginação, seu objetivo era impedir que o "Executivo" (ou seja, o próprio Kernel) fosse paginado e, assim, causar lentidão no sistema inteiro, não apenas aplicativos paginados individuais.

Você pode tentar desativar completamente a paginação removendo todos os arquivos de paginação nas Propriedades do Sistema (ou em HKLM \ SYSTEM \ CurrentControlSet \ Control \ Gerenciador de Sessão \ Gerenciamento de Memória \ Arquivos de Paginação). Isso funciona bem para mim, mas as coisas ficam bastante desagradáveis quando você fica sem memória física e você deve ter um arquivo de paginação para depurar erros de parada.

    
por 28.05.2009 / 02:38
2

Apenas para adicionar um uso adicional a essa configuração: é necessário que xperf ande em pilha.

link

Disable Paging Executive

In order for tracing to work on 64-bit Windows you need to set the DisablePagingExecutive registry key. This tells the operating system not to page kernel mode drivers and system code to disk, which is a prerequisite for getting 64-bit call stacks using xperf, because 64-bit stack walking depends on metadata in the executable images, and in some situations the xperf stack walk code is not allowed to touch paged out pages.

Uma informação adicional sobre a configuração. Esta citação pode ser encontrada na internet, eu não sei sua fonte primária.

DisablePagingExecutive applies only to ntoskrnl.exe. It does not apply to win32k.sys (much larger than ntoskrnl.exe!), the pageable portions of other drivers, the paged pool and of course the file system cache. All of which live in kernel address space and are paged to disk. On low memory systems this can force application code to be needlessly paged and reduce performance. If you have more than enough RAM for your workload, yes, this won't hurt, but then again, if you have more than enough RAM for your workload, the system isn't paging very much of that stuff anyway. This setting is useful when debugging drivers and generally recommended for use only on servers running a limited well-known set of applications

Portanto, pode-se concluir que além do xperf -uso seu benefício é obscuro: Essencialmente, limita algumas coisas "quase aleatórias" de paginação e em pensamentos posteriores - conseqüentemente faz com que algo mais seja paginado com mais frequência .

    
por 26.06.2016 / 21:46
1

Componentes de nível de sistema, como o kernel, executivo e drivers de dispositivo, podem alocar memória de dois pools. Estes são o pool paginado, que pode ser paginado a critério de gerentes de memória eo pool não paginado que deve permanecer na RAM em todos os momentos. O desenvolvedor decide de acordo com suas necessidades qual pool será usado. Recomenda-se que o pool paginado seja usado sempre que possível, pois isso permite a flexibilidade máxima do gerenciador de memória do sistema. Ambos os pools são de tamanho limitado e em sistemas de 32 bits, em particular, esses limites podem representar um problema. O pool paginado é consideravelmente maior. Se o pool não paginado fosse usado excessivamente, o limite de tamanho poderia ser alcançado e isso causaria alguns problemas sérios no sistema.

Os itens rotulados no Gerenciador de Tarefas como "Paged" e "Não paginável" estão exibindo as alocações desses pools. Não tem absolutamente nada a ver com o estado dinâmico de quanta memória realmente é paginada. A entrada de registro "DisablePagingExceutive" influencia o estado de paginação dinâmica de uma parte do pool paginado para que seus efeitos nunca sejam mostrados pelo Ask Manager.

    
por 13.02.2012 / 23:53
1

Se você fizer uma alteração em uma configuração do sistema, precisará entender essas informações ou o equívoco delas para saber que tipo de resultados uma alteração na configuração do sistema faz, onde os resultados podem ser positivos, neutros ou negativos. em relação ao desempenho do sistema.

O que você pode fazer é abrir o "Monitor de Recursos" no Windows. Vá para a ferramenta de pesquisa e pesquise 'Monitor de Recursos'. Ou abra a ferramenta de comando de execução (assumirei que alguém que esteja lendo isso sabe como fazer isso) e digite 'resmon'.

Use essa ferramenta para monitorar todos os tipos de atividade do sistema, como atividade da CPU, Atividade da memória e Atividade no disco rígido. Se você ainda não estiver familiarizado com as informações 'Resource Monitor', analise-as um pouco, pois precisará estar familiarizado com elas para executar testes que ajudarão a medir o tipo de resultado que uma alteração em uma configuração do sistema faz. / p>

A idéia básica é que você execute o 'Monitor de Recursos' ao fazer com que o sistema do computador execute determinadas tarefas para medir os resultados relacionados ao desempenho que uma alteração nas configurações do sistema faz. Execute tarefas que usam os recursos do sistema para testar o desempenho. Por exemplo, existem tarefas que podem testar o processador, a memória RAM, o disco rígido, a unidade do processador gráfico ou um dispositivo de rede. Use o google para descobrir como testar o desempenho dos recursos do computador que você deseja testar.

Se, por exemplo, você fizer uma alteração na configuração do sistema, 'Desabilitar o Executivo de Paginação', poderá executar um teste nos recursos do computador e usar 'Monitor de Recursos' para avaliar os tipos de resultados que a alteração produz. todos).

Em seguida, faça uma comparação entre os dados e veja se há diferenças significativas entre a configuração antiga do sistema e a nova configuração do sistema que você alterou.

Você pode nem sempre precisar usar o 'Monitor de Recursos', já que alguns métodos de teste de desempenho de recursos do sistema vêm com softwares que monitoram e medem para você.

A questão é que você quer seguir um método sistemático para ver se uma mudança faz alguma coisa com o desempenho do seu sistema em relação às tarefas que você solicita que o computador execute.

Altere uma configuração. Teste-o para a mudança de desempenho. Determine os resultados do teste. Com base nos resultados, decida se você alterará a configuração de volta para o que era ou para outra coisa, ou deixará onde está. 1) Cenário 2) Teste 3) Resultados 4) Decisão.

Você pode usar esse método de dedução lógica para todos os tipos de ajustes de configuração do sistema, incluindo 'Desabilitar Executivo de Paginação'.

Feliz Tweaking.

    
por 07.09.2018 / 09:09