Cada pool de aplicativos pode usar até 2 GB de espaço de endereço privado, a menos que você tenha jogado com opções BCDEDIT, como 3 GB.
Se todos os 10 usassem todos os 2GB possíveis, você estaria no inferno de paginação.
A sua pergunta é mais geral sobre como os processos podem alocar memória no Windows - vou apresentar alguma terminologia para você pesquisar mais.
Bytes privados - essa é a quantidade de memória carregada exclusivamente para o processo Bytes virtuais - esta é a quantidade total de memória que o processo alocou Conjunto de trabalho - isso é o quanto a RAM está realmente sendo usada pelo processo
Memória reservada - memória reservada para uso por um aplicativo, mas que ainda não tem suporte para RAM / arquivo de paginação Memória confirmada - memória com backup
Agora, a questão se torna mais complicada quando você adiciona estruturas de aplicativos como .Net in. O .Net tem um máximo trabalhável abaixo de 2 GB antes que o OutOfMemoryExceptions aconteça. E, em geral, na minha experiência, eles não acontecerão em um aplicativo que não esteja vazando algo ou com uma carga maior do que o possível.
O perfmon com os contadores de processo geralmente é tudo o que você pode fazer com pools de aplicativos; você pode ativar a opção de colocar o PID no nome do processo, se isso ajudar, e o APPCMD LIST WP regularmente para manter uma nota de qual pool de aplicativos está fazendo o que.