Eu tenho um serviço do Windows escrito em C #, que faz um trabalho pesado (irrelevante para a questão) em execução em uma máquina remota (Windows Server 2008).
Agora, um aplicativo cliente entra em contato com o serviço. O serviço inicia seu trabalho e possivelmente consome grande quantidade de memória. Ele libera a memória consumida depois que o trabalho é concluído. Tudo bem até agora, sem vazamentos de memória ou algo parecido. Mas infelizmente o serviço aloca quase toda a memória disponível se vários clientes a contatarem (o que é basicamente ok, já que faz muito trabalho). A desvantagem é que, então, não há memória disponível para outros serviços que são executados nessa máquina.
Então, existe uma maneira de limitar ou restringir a quantidade de memória que meu serviço pode alocar? É de alguma forma possível declarar, digamos, levar até 50% da memória da máquina, mas não mais? Algo como isso é possível para processos hospedados no IIS, mas o meu é um serviço de janelas 'ususal'.
Tags memory quota windows-service