Como ajustar a prioridade de troca do Windows (se houver alguma?)

0

Às vezes eu abro um programa que aloca muita memória - ou seja, o computador tem 0,5 GB de RAM livre e um aplicativo solicita 1 GB.

Nesse caso, ele começará a trocar para que possa atender à solicitação.

O problema é: ele está fazendo uma troca extrema , incluindo a memória dos serviços, então o computador fica muito lento - até o ponteiro do mouse começa a gaguejar e às vezes eu tenho que desligar a máquina.

Parece-me errado que um programa em modo de usuário, executado a partir de uma conta de usuário normal, possa derrubar a máquina.

Existe alguma maneira de dizer ao Windows: ei, se um aplicativo solicitar muita memória, coloque sua memória para trocar e não a memória dos serviços essenciais.

O SO é o Windows Server 2012 x64, mas também já vi isso em várias outras máquinas.

    
por NothingsImpossible 27.11.2015 / 17:34

1 resposta

0

Em um comentário , Daniel B diz que eu estava passando por falta de E / S, então tentei mover o arquivo de troca para fora da partição do sistema (C :) e para um disco separado .

Funcionou - quando sob pressão de memória, o computador não para de responder mais. Decidi então fazer algumas pesquisas sobre o assunto, para entender por que isso acontece. Estas são minhas conclusões:

  1. Em um documento oficial da Microsoft intitulado "Priorização de E / S no Windows Vista" , é declarado que a E / S é processada hierarquicamente e que todas as E / S de prioridade crítica devem ser processadas antes de qualquer outra E / S de prioridade .

  2. Também é dito que prioridade crítica de E / S é reservada para o gerenciador de memória .

  3. Não consegui encontrar evidências da existência de uma priorização especial pelo gerenciador de memória com base no proprietário de uma página (ou seja, a troca de páginas de memória alocadas por processos de prioridade mais baixa também obtém menor prioridade de E / S) .

  4. Não encontrei nenhuma evidência de novas estratégias de priorização no Windows 8.

Portanto, supondo que toda a E / S do gerenciador de memória tenha a mesma prioridade (crítica) e que a estratégia de E / S permaneça inalterada desde o Vista, esta é a receita para o desastre:

  • Troque o arquivo no mesmo disco que o sistema (geralmente C:)

  • Um processo solicita mais memória do que a fisicamente disponível no sistema.

  • Ocorre a troca. Enquanto a troca está acontecendo, nenhuma outra operação de E / S pode ocorrer, mesmo E / S essencial por serviços do sistema ou outros componentes do kernel, porque E / S crítica é reservada ao gerenciador de memória E todas as E / S críticas ocorrem antes qualquer outra E / S.

  • Gradualmente, todo processo que bloqueia a E / S fica preso. Em última análise, o sistema não responde de forma eficaz.

por 27.11.2015 / 22:22