Você está com pouco virtual memória. Isso pode acontecer mesmo se você tiver bastante RAM livre.
É como não poder gastar dinheiro, mesmo que você tenha muitos cheques e muito dinheiro no banco. Você tem que ter dinheiro suficiente para cobrir os cheques que você já escreveu ou você não pode escrever mais sem correr o risco de catástrofe, caso todos os seus cheques sejam descontados de uma só vez.
Uma solução simples é ampliar o arquivo de paginação.
Um arquivo de paginação é como uma linha de crédito da qual o Windows pode pedir emprestado. Sabendo que pode pegar emprestado do arquivo de paginação, se todos os seus cheques forem descontados de uma só vez, ele pode continuar fazendo cheques. As chances são de que ele não irá realmente usar o arquivo de paginação, mas ele só precisa garantir que ele possa cumprir suas promessas.
Por exemplo, digamos que você tenha 4 GB de RAM. Quatro aplicativos são inicializados e informam ao SO que eles podem precisar de até 1 GB de RAM (uma reserva). O sistema operacional diz "bem" e todos os quatro aplicativos são iniciados. (Você preferiria não deixá-los correr ?!)
Digamos que eles estejam usando um total de 1 GB de RAM agora. Em seguida, outro aplicativo é iniciado e pede 1 GB. O que o sistema operacional pode fazer? Se ele diz sim a esse aplicativo, o que acontece no improvável evento de que todos os aplicativos usem repentinamente toda a memória solicitada? O sistema operacional não tem 5 GB disponíveis e não pode revogar as promessas já feitas.
Com um arquivo de paginação, é claro, ele pode simplesmente escrever páginas raramente usadas no disco e manter todas as suas promessas. Portanto, ele precisa do arquivo de paginação para permitir que outro aplicativo seja executado, mesmo que 3 GB seja gratuito.
Com um arquivo de paginação grande, o Windows pode permitir que os aplicativos sejam executados, desde que o conjunto de trabalho real possa caber na RAM. Sem um arquivo de paginação, o Windows não pode permitir que nenhum aplicativo seja executado, a menos que consiga ajustar tudo na RAM que possa possivelmente ser usado com base nos compromissos já feitos. Isso significa, por exemplo, que um simples mapeamento privado gravável de um arquivo de 1 GB faz com que todo o 1GB de RAM seja essencialmente desperdiçado porque o aplicativo pode gravar em cada byte desse arquivo, de modo que 1 GB de RAM só pode conter páginas seguras. descartado.
O Linux, a propósito, permite que o sistema operacional supercompra o backing store. A desvantagem disso é que ele pode precisar matar processos com força se o sistema operacional acabar fazendo promessas que não pode cumprir. É por isso que o Linux tem um " Assassino de OOM "e o Windows não. A maioria das máquinas Linux overcommit desativado de qualquer maneira.