Muitas pessoas são instruídas sobre como o cache do gerenciador de memória do Windows funciona lendo os white papers da Microsoft etc. No entanto, existem relativamente poucos documentos que descrevem problemas de desempenho do mundo real (lentidão) relacionados a arquivos mapeados e listas de espera muito grandes / crescentes.
Eu tenho um PC Win7 64bit (8Gb RAM) que atua como servidor. Não consigo adicionar mais memória a ele. Ele possui vários sintonizadores de TV que gravam / gravam vários arquivos mpeg2 gigantescos simultâneos (de pelo menos 3-8 GB cada) em um HDD 24/7. Dependendo de quão ocupado meu PC está gravando programas de TV, após 1-3 dias, meu PC fica lento.
Ao apenas olhar para o Windows Task Manager, parece que não tenho muitos aplicativos grandes abertos; e abundância de "memória disponível". Mesmo se eu fechar todos os processos ativos, o PC continuará lento. No entanto, ao usar o RamMap, posso ver que esses arquivos mpeg2 grandes se tornam arquivos mapeados na lista de espera ativa; que com o tempo tornam meu PC muito lento. Se eu selecionar "Lista de espera vazia" no RamMap, meu PC imediatamente se torna extremamente sensível; como se eu apenas tivesse reiniciado. Não há mais nada que eu possa fazer para lidar com a lentidão. De fato, o PC nunca se recuperará dessa lentidão, a menos que eu esvazie a lista de espera ou reinicie.
Eu tenho um utilitário de linha de comando, EmptyStandbyList.exe, que achei que limpa silenciosamente a lista de espera, em vez de ter que fazer isso na GUI do RamMap. No entanto, infelizmente, ele também elimina itens menores na lista de espera que são muito úteis para fins de desempenho para permanecer na lista de espera.
Ao pesquisar no Google, encontrei outras pessoas que têm quase o mesmo problema exato que eu. No entanto, a maioria de suas perguntas fica sem resposta; sem explicação real para o porquê disso acontecer; e, não há maneira definitiva de corrigir o problema além da técnica "Lista em espera vazia".
Eu já vi menções a um utilitário / serviço da MS chamado "Dynamic Cache"; mas não tenho certeza se cura especificamente o que eu quero. Além disso, a versão Win7 / Win2008 R2 parece estar disponível apenas através do suporte da MS. Eu também vi alguns utilitários que definem os "limites mínimo / máximo de cache do NT"; mas eles parecem específicos de Conjuntos de trabalho para processos, não de listas de espera.
Espero que alguém que possa pensar fora da caixa possa pensar em uma cura mais elegante para mim, em vez de eu ter que usar brutalmente esvaziar regularmente a lista de espera inteira; e espero ter uma explicação definitiva para o sintoma que eu (e outras pessoas) estamos vendo. A razão pela qual mencionei "fora da caixa" é porque já existem muitas pessoas que gostam de recitar como os arquivos mapeados e as prioridades da lista de espera "devem" trabalhar no papel; o que não é muito útil para mim.