Bem, primeiro, antes de entrar numa resposta mais detalhada. Na sua primeira captura de ecrã, o seu Non-Paged Pool (um tipo de utilização de memória kernel) está a 1,3GB. Isto parece-me invulgarmente elevado, especialmente durante apenas 30 minutos após o arranque. Acho que consegui ver o NP Pool a ficar tão alto após uma quantidade prolongada de utilização ou com um programa que estava a vazar como uma peneira. Para contrastar, o meu NP Pool está normalmente entre 100 e 200 megabytes, e o meu pool paginado pode atingir 400 ou 500 (e isto depois de ter o meu sistema a funcionar sem reiniciar durante semanas.)
Pode activar algumas colunas adicionais no Task Manager clicando com o botão direito do rato nos cabeçalhos das colunas, e escolhendo seleccionar colunas. Deve adicionar Working Set (private)
, Working Set (shared)
, Commit
, NP Pool
, e 0x6&. Eu faria um scan a todos os seus processos de todos os utilizadores, e ver se algum deles tem um NP Pool mais do que cerca de 256KB. Se vir algum, especialmente algum que seja consideravelmente superior, que possa ser a fonte do problema, ou pelo menos parte dele.
O seu conjunto de trabalho total, a quantidade de memória física em uso por um processo, é a combinação dos conjuntos de trabalho privado e partilhado (WS). O privado é normalmente maior para a maioria dos processos, contudo pode haver alguns que utilizam uma maior quantidade de WS partilhada. Os dois devem normalmente somar-se ao total de WS. Compromisso é a quantidade do seu conjunto de trabalho que foi comprometida com a loja de apoio (na maioria dos casos, o ficheiro de página do Windows). As aplicações de fundo terão frequentemente um Commit maior do que a WS, indicando que grande parte do seu conjunto de paginação foi trocado para fora da memória e para o seu ficheiro de paginação (o que é bastante normal para aplicações de fundo que foram minimizadas e não foram utilizadas durante algum tempo).
O Non-Paged Pool é memória que não pode, e nunca será, trocada para fora da memória física…que é efectivamente a sua utilização mínima permanente de memória física. A memória NP Pool contém frequentemente o código do programa e secções críticas que devem estar na memória física para se comportarem correctamente ou com segurança, pilhas especiais, etc. De 60 processos, se todos eles tiverem 256KB de memória NP Pool, então a sua utilização mínima absoluta de memória física seria de cerca de 15,360KB. Na maioria dos casos, uma ou duas aplicações podem ter um Pool NP de 256KB, enquanto a maioria tem menos, muitas vezes consideravelmente menos (ou nenhuma). É altamente improvável que o sistema alguma vez paginasse a totalidade de todos os processos a funcionar, por isso nunca espere que a utilização da memória seja tão baixa.
Finalmente, o objectivo de ter mais memória é evitar ter de paginar dados de e para o espaço de memória alargado (swap, ficheiro de página) num disco físico. Paging é um processo que envolve mover blocos de memória física atribuída, empurrando alguns para o disco, e trazer outros para a memória física a partir do disco. Paging é, para o manter simples, altamente indesejável. Não é “mau” por si só, mas pode ser um verdadeiro arrastamento no desempenho quando ocorre com demasiada frequência. O ponto final de aumentar a RAM física total num sistema é permitir mais processos para manter mais do seu compromisso na memória física (conjunto de trabalho maior). Consumir memória não é um problema, e quando mais processos de execução utilizam mais memória, o desempenho total do sistema e o desempenho activo do processo serão normalmente mais elevados, uma vez que a actividade física do disco relacionada com os acessos à memória (falhas de página, especificamente) será menor.
O Windows gere a memória para si, e automaticamente coloca e retira dados da memória de e para o ficheiro (swap) da página para si. Se executar um processo que necessita de 9GB de memória e o seu sistema já estiver a usar 4GB (de 12GB), então o sistema irá automaticamente descobrir quais os processos que não necessitam de acesso imediato a todo o seu conjunto de trabalho, e irá pagear parte ou a totalidade do seu pool de paginação para trocar, de modo a libertar esse 1GB extra. Se o seu grande processo eventualmente necessitar de mais memória, as janelas irão reduzir ainda mais o conjunto de trabalho de outros processos até que tenha espaço livre suficiente para atribuir o bloco recentemente solicitado. O seu grande processo poderá eventualmente consumir toda a memória disponível excepto o NP Pool e talvez alguma sobrecarga mínima adicional para executar periodicamente processos que não permitem ao Windows libertar mais do seu conjunto de trabalho (ou seja, têm falhas de página pendentes que o Windows trocaria de outra forma da memória física, mas porque estão a ser solicitados, não podem ser movidos).
Se um processo necessita de mais memória do que aquela a que é permitido aceder (processos de 32bit podem normalmente aceder a 2Gb, e alguns um pouco menos de 4Gb com técnicas melhoradas, enquanto processos de 64bit podem normalmente aceder a cerca de 48Gb de memória, cada um), então o Windows tentará por vezes virtualizar a sua memória com espaço de troca. Se uma aplicação de 32bit quiser utilizar o seu espaço máximo permitido de 2Gb, mas apenas 1.2Gb estiver disponível, o windows reservará os 2Gb completos no ficheiro de página, e moverá os próprios dados dos processos para dentro e para fora do ficheiro de página, conforme necessário, a fim de suportar a utilização da memória da aplicação. O uso total de “memória” neste caso pode parecer ser maior do que a memória física disponível, quando se passa por Compromisso total. O Compromisso Total será normalmente máximo no tamanho total do ficheiro da página, que quando gerido pelo sistema, é normalmente 2-3x a quantidade de memória física. No seu caso, a Compromisso Total seria cerca de 24Gb, ou 2x a sua memória física de 12Gb (e isto é indicado na sua primeira captura de ecrã, onde declara: Commit (GB) 3 / 23).
Um ponto final. Disse na sua resposta que tinha 16Gb de RAM, onde, como Gestor de Tarefas, só vê 12Gb de RAM. Uma de duas coisas aqui. Ou o seu sistema realmente só tem 12Gb de RAM, ou um dos seus paus não está a registar-se correctamente. Se um pau de carneiro (estou a assumir 4x 4Gb sticks), pode ser mau, pode não estar sentado totalmente correctamente na sua placa-mãe, ou a sua placa-mãe pode ter um problema de detecção de memória.
Para verificar se é a última, deve primeiro actualizar a BIOS da sua placa-mãe para a versão mais recente. Tive um problema semelhante…os meus seis paus de carneiro Tripple-Channel DDR3 (6x 2Gb) eram todos bons baseados em testes individuais de cada um…mas a minha placa-mãe decidiu aleatoriamente não contar um ou dois de vez em quando, deixando-me muitas vezes com apenas 8Gb de carneiro. Uma actualização da BIOS resolveu o problema, e agora tenho acesso fiável a todos os 12Gb da minha memória.