Consumo de memoria de la aplicación VC ++ no administrada en Windows Server

OK, por lo que tengo una aplicación (servidor) de C ++ no administrada de múltiples subprocesos muy grande que se ejecuta en un servidor Windows 2003. Aloja sesiones para 20-50 usuarios concurrentes que hacen todo tipo de lógica de negocios ... A veces puede estar usando una gran cantidad de memoria debido a cosas como el almacenamiento en caché de objetos / sesiones debido a que los usuarios tienen una gran cantidad de ventanas abiertas en los clientes (cada ventana tiene una 'sesión' de servidor separada.

Vemos habitualmente un consumo de más de 5-600 MB de memoria física y de 5-600 MB de memoria virtual. Una vez que llega a este punto, parece que comenzamos a tener errores de "falta de memoria".

Ahora sé que Windows comenzará a generar fallas de página cuando sienta que necesita liberar memoria física, y también que las aplicaciones win32 normalmente solo pueden asignar hasta un máximo de 4 GB de memoria, realmente solo con 2 GB de eso disponible para el uso real por parte de la aplicación del espacio de direcciones en 'modo de usuario', y mucho menos después de cargar otras bibliotecas ... No estoy seguro de si el uso de memoria en 'modo de usuario' es lo que se informa en el Administrador de tareas ...

e todos modos, mi verdadera pregunta es:

¿Cómo puedo averiguar a cuánta memoria de modo de usuario tiene acceso mi aplicación y cuánto se ha utilizado en un momento dado (preferiblemente desde fuera de la aplicación, es decir, alguna herramienta de administración de Windows)?

[editar] Después de mirar el Process Explorer y el sitio web, parece que el valor 'Tamaño virtual' es el valor de la cantidad de memoria a la que tiene acceso la aplicación.

Respuestas a la pregunta(3)

Su respuesta a la pregunta