Les processus de travail IIS consomment beaucoup de mémoire sur nos serveurs. Je veux limiter la mémoire que chaque application peut utiliser. Je ne sais pas si je dois définir une limite sur la mémoire virtuelle ou la mémoire privée. Chaque application dans notre IIS est sur son propre pool d’applications.
Si je définis la limite de mémoire privée à 500 Mo et la limite de mémoire virtuelle à 3 Go, quand le pool d’applications se recycle-t-il ? Se recycle-t-il après avoir atteint 500 Mo ou après avoir atteint 3 Go ?
Si vous définissez une limite de 500 Mo d’octets privés, dès qu’un processus de travail tente d’engager 501 Mo, IIS lancera un nouveau processus de travail et tuera l’ancien.
Si vous définissez une limite de 3 Go de mémoire virtuelle, dès qu’un processus de travail tente de réserver 3,001 Go, IIS lancera un nouveau processus de travail et tuera l’ancien.
Si vous êtes sur une plateforme 64 bits, vous devez savoir que les applications ASP.NET réservent agressivement de la mémoire virtuelle. Par exemple, j’ai une application sur une ferme qui n’utilise que 88 Mo d’octets privés, mais elle est actuellement à 5,4 Go de taille virtuelle. Je pense que la réservation de mémoire virtuelle est fonction de la RAM physique du serveur. Il est également important de comprendre que sur une plateforme 64 bits, la réservation de grandes portions de mémoire virtuelle n’a aucun impact sur les performances.
En résumé, si vous rencontrez des problèmes de consommation mémoire sur un serveur IIS, le paramètre que vous voulez limiter est la mémoire/les octets privés — c’est ce qui correspond à l’utilisation réelle de la mémoire.