Quedarse sin límite de confirmación mientras todavía tiene mucha RAM disponible no es nada inusual. Ni el límite de compromiso ni el cargo de compromiso están directamente relacionados con la RAM libre o disponible.
El límite de confirmación = tamaño de archivo de paginación actual + tamaño de RAM.
Como no tiene un archivo de página, el límite de confirmación es menor de lo que sería si tuviera un archivo de página. No importa cuánto RAM esté libre . Para el límite de confirmación, solo importa la cantidad de RAM instalada . Puede quedarse sin límite de compromiso incluso con el 90% de su RAM libre o disponible.
La carga de compromiso es un recuento de memoria virtual, no física. Supongamos que mi programa solicita 2 GB comprometidos, pero luego solo accede a .5 GB. Los 1,5 GB restantes nunca tienen fallas, nunca se asignan a RAM, por lo que el uso de RAM no refleja los 2 GB, solo .5 GB.
Aún así, el "compromiso del sistema" aumenta en 2 GB porque el sistema se ha "comprometido" de que habrá un lugar para guardar mis 2 GB, en caso de que realmente lo necesite todo. El hecho de que en cualquier ejecución del programa no intente usarlo todo necesariamente no ayuda. Pedí 2 GB y el regreso exitoso de esa llamada me dice que el sistema operativo "se comprometió", es decir, prometió, que puedo usar tanto espacio de direcciones virtuales. El sistema operativo no puede hacer esa promesa a menos que haya algún lugar para mantenerlo todo.
Entonces: vuelva a colocar su archivo de página, agregue más RAM o ejecute menos cosas a la vez. O alguna combinación de los tres. Estas son sus únicas opciones para evitar los errores de "poca memoria" y "falta de memoria".
Vea también mis respuestas aquí (más tiempo) y aquí (mucho más tiempo).