Ficar fora do limite de confirmação enquanto você ainda tem muita RAM disponível não é incomum. Nem o limite de confirmação nem a cobrança de confirmação estão diretamente relacionados à RAM disponível ou disponível.
O limite de confirmação = tamanho do arquivo de paginação atual + tamanho da RAM.
Como você não possui um arquivo de paginação, o limite de confirmação é menor do que seria se você tivesse um arquivo de paginação. Não importa quanto da RAM é grátis . Para o limite de confirmação, apenas a quantidade de RAM instalada é importante. Você pode ficar sem o limite de confirmação mesmo com 90% da sua RAM livre ou disponível.
A taxa de confirmação é uma contagem de memória virtual, não física. Suponha que meu programa solicite 2 GB confirmados, mas ele acessa apenas 0,5 GB. Os 1,5 GB restantes nunca são afetados, nunca são atribuídos à RAM; portanto, o uso da RAM não reflete os 2 GB, apenas 0,5 GB.
Ainda assim, "confirmação do sistema" é aumentada em 2 GB porque o sistema "confirmou" que haverá um local para armazenar meus 2 GB, caso eu precise realmente de tudo. O fato de que em qualquer execução do programa não necessariamente tentarei usar tudo isso não ajuda. Eu pedi 2 GB e o retorno bem-sucedido dessa ligação me diz que o sistema operacional "comprometeu" - ou seja, prometeu - que eu posso usar tanto espaço de endereço virtual. O sistema operacional não pode fazer essa promessa, a menos que haja algum lugar para manter tudo.
Então: coloque seu arquivo de paginação de volta, adicione mais RAM ou execute menos coisas ao mesmo tempo. Ou alguma combinação dos três. Essas são as suas únicas opções para evitar erros de "pouca memória" e "falta de memória".
Veja também minhas respostas aqui (mais) e aqui (muito mais).