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:
-
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 .
-
Também é dito que prioridade crítica de E / S é reservada para o gerenciador de memória .
-
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) .
-
Não encontrei nenhuma evidência de novas estratégias de priorização no Windows 8.
-
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.