web-dev-qa-db-fra.com

Comment limiter la mémoire utilisée par une application dans IIS?

Les processus de travail IIS prennent 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 limite de mémoire virtuelle ou la mémoire privée Chaque application de notre IIS est sur son propre pool d'applications.

Si je fixe la limite de mémoire privée à 500 Mo et la limite de mémoire virtuelle à 3 Go. Quand le pool d'applications est-il recyclé? Recycle-t-il après avoir atteint 500 Mo ou après avoir atteint 3 Go.

18
kishore

IIS respectera ces deux limites.

Si vous définissez une limite d'octets privés de 500 Mo, dès qu'un processus de travail tente de valider 501 Mo, IIS fera tourner un nouveau processus de travail et tuera l'ancien.

Si vous définissez une limite de mémoire virtuelle de 3 Go, dès qu'un processus de travail tente de réserver 3 001 Go, IIS fera tourner un nouveau processus de travail et tuera l'ancien.

Si vous êtes sur une plate-forme 64 bits, vous devez savoir que la mémoire virtuelle de l'application ASP.NET est agressive. À titre d'exemple, j'ai une application sur une batterie de serveurs qui utilise seulement 88 Mo d'octets privés, mais elle est actuellement à 5,4 Go de taille virtuelle. Je crois que la réservation de mémoire virtuelle est une fonction de RAM sur le serveur. Il est également important de comprendre que sur une plate-forme 64 bits, la réservation de grandes portions de mémoire virtuelle n'a aucun impact sur les performances.

Fondamentalement, si vous rencontrez des problèmes de consommation de mémoire sur un serveur IIS, le paramètre que vous souhaitez limiter est Mémoire privée/Octets, c'est ce qui correspond à l'utilisation réelle de la mémoire.

18
Dominic D