27 votes

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

Les processus de travail de 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 fixer une limite de mémoire virtuelle ou une limite de 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 se recycle-t-il ? Se recycle-t-il après avoir atteint 500 Mo ou après avoir atteint 3 Go ?

0 votes

Où sont les options "Limite de mémoire virtuelle" et "Limite de mémoire privée" dont vous parlez ?

1 votes

@ColonelPanic Sur IIS7.5, ils se trouvent sous le nom d'un pool d'applications. Advanced Settings -> Recycling section.

27voto

Dominic D Points 1366

IIS respectera ces deux limites.

Si vous fixez une limite de 500MB pour les octets privés, dès qu'un processus de travail tente de commit 501MB, IIS lancera un nouveau processus de travail et tuera l'ancien.

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

Si vous êtes sur une plate-forme 64 bits, vous devez savoir que les applications ASP.NET réservent agressivement la mémoire virtuelle. Par exemple, j'ai une application dans une ferme qui n'utilise que 88 Mo d'octets privés, mais qui occupe actuellement 5,4 Go de mémoire virtuelle. Je crois que la réservation de la mémoire virtuelle est fonction de la RAM physique sur le 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.

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

1voto

Pour compléter la réponse de Dominic, sur un pool 64 bits, il faut faire très attention à l'allocation de la mémoire virtuelle. J'ai vu le processus de travail IIS essayer de prendre 22 Go immédiatement, alors que c'était la valeur que nous essayions de définir pour que les pools d'applications se plantent toutes les minutes. Les meilleures pratiques de MS IIS indiquent que ces paramètres ne devraient pas être définis, mais les STIG de la DISA indiquent que vous devez les définir. Des moments amusants.

https://techcommunity.microsoft.com/t5/core-infrastructure-and-security/iis-best-practices/ba-p/1241577

VS DISA V-76869 La quantité de mémoire virtuelle utilisée par un pool d'applications doit être définie.

V-76871 La quantité de mémoire privée qu'un pool d'applications utilise doit être définie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X