Video Screencast Help
Scheduled Maintenance: Symantec Connect is scheduled to be down Saturday, April 19 from 10am to 2pm Pacific Standard Time (GMT: 5pm to 9pm) for server migration and upgrades.
Please accept our apologies in advance for any inconvenience this might cause.

Gestion des pools applicatifs IIS pour SMP 7.1

Created: 14 Nov 2012 • Updated: 21 Nov 2012
Ludovic Ferre's picture
0 0 Votes
Login to vote

Les solutions Symantec basée sur la "Symantec Management Plateform" peuvent être très gourmand en mémoire, et pour des serveurs en production (c'est a dire avec une charge de travaille - surtout au niveau des agents - d'au moins 100 clients) la configuration par défaut avec un pool applicatif IIS devient un goulot d'étranglement.

Ceci se matérialise par des lenteurs notables sur la console, une consommation CPU du process w3wp.exe entre 75% et 100% et une consommation mémoire du même process au dessus de 1.1 GiO.

Le problème est du a une limitation de Microsoft .Net qui a un plafond mémoire (en fonction du nombre d'objet géré) qui oscille entre 1.1 et 1.3 GiO. Lorsque ce plafond est atteint .Net dépense énormément de temps et de CPU pour trouver des objets à supprimer via le ramasse miette ("garbage collector"), ce qui retarde le traitement des demandes http et la création des réponses.

Pour éviter ces problèmes et optimiser l'expérience sur la console Symantec recommande d'implémenter des pools applicatifs supplémentaires afin de partitionner les applications web utilisant beaucoup de mémoire. Ainsi l'espace mémoire maximum disponible pour les applications web sur le serveur peut passer de 1 x 1.3 GiO a 5 ou 6 x 1.3 GiO (mais ce plafond la n'est jamais atteints - du moins pas a ce jour).

Dans ce document nous allons voir quels pools peuvent ou doivent être mis en place, comment faire la mise en place des pools applicatifs IIS automatiquement puis manuellement.

Note importante:

Certains applications web ne peuvent pas être séparé du pool contenant l'application /Altiris. Donc si vous souhaiter étendre les pools applicatif au delà de ce qui est décrit si dessous, prenez soin de tester (et documenter) les changements mise en place. Ainsi en cas de disfonctionnement de la console ou de certaines solutions un rollback rapide vous permettra de revenir à une configuration standard. 

Les pools applicatifs à mettre en place:

Voici un tableau des pools applicatifs à mettre en place avec leur contenu et importance:

Nom du pool applicatif Application(s) Web du pool Importance
Altiris-NS-Agent /Altiris/NS/Agent Critique
TaskManagement /Altiris/TaskManagement
/Altiris/ClientTaskServer
Critique
ActivityCenter /Altiris/ActivityCenter Important
PatchManagement /Altiris/PatchManagement
/Altiris/PatchManagementCore
Altiris/PatchManagementMac
Important
SoftwarePortal /Altiris/SoftwarePortal Optionnel
ITAnalytics /Altiris/ITAnalytics
/Altiris/ITAnalyticsCSMP
/Altiris/ITAnalyticsSEP
Optionnel

Mise en place automatique:

 

Dans ce cas la tache est très simple: copiez le script ci-dessous, sauvegarder le en tant que fichier batch (.bat) et exécuter le sur le serveur avec un compte d'administration.

A noter que les pools Altiris-NS-Agent, TaskManagement et ActivityCenter sont les plus important, puisqu'ils sont responsable d'une grande partie du trafic http(s) et des consommations mémoires.

@echo off
set appcmd=%comspec%\..\inetsrv\appcmd

%appcmd% add apppool -name:Atiris-NS-Agent
%appcmd% set apppool Altiris-NS-Agent -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/NS/Agent" -applicationPool:Atiris-NS-Agent

%appcmd% add apppool -name:TaskManagement
%appcmd% set apppool TaskManagement -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/TaskManagement" -applicationPool:TaskManagement
%appcmd% set app "Default Web Site/Altiris/ClientTaskServer" -applicationPool:TaskManagement

%appcmd% add apppool -name:ActivityCenter
%appcmd% set apppool ActivityCenter -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/ActivityCenter" -applicationPool:ActivityCenter

%appcmd% add apppool -name:PatchManagement
%appcmd% set apppool PatchManagement -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/PatchManagement" -applicationPool:PatchManagement
%appcmd% set app "Default Web Site/Altiris/PatchManagementCore" -applicationPool:PatchManagement
%appcmd% set app "Default Web Site/Altiris/PatchManagementMac" -applicationPool:PatchManagement

%appcmd% add apppool -name:SoftwarePortal
%appcmd% set apppool SoftwarePortal -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/SoftwarePortal" -applicationPool:SoftwarePortal

%appcmd% add apppool -name:ITAnalytics
%appcmd% set apppool ITAnalytics -managedPipelineMode:Classic
%appcmd% set app "Default Web Site/Altiris/ITAnalytics" -applicationPool:ITAnalytics
%appcmd% set app "Default Web Site/Altiris/ITAnalyticsCSMP" -applicationPool:ITAnalytics
%appcmd% set app "Default Web Site/Altiris/ITAnalyticsSEP" -applicationPool:ITAnalytics

Mise en place manuelle:

Même s’il est possible de compléter les taches de manière automatique connaitre la mise en place manuelle permet de se familiariser avec l'interface de gestion IIS (inetmgr).

  • Ouvrez le gestionnaire IIS, déroulez le serveur (local ou distant) et cliquez sur "Application Pools":

  • Cliquez droit dans la section d'affichage des pools et sélectionnez "Add Application Pool"

  • Ajoutez le nom du nouveau pool (Altiris-NS-Agent dans le cas ci-dessous)

  • Sélectionnez la version 2.0 du Framework .Net

  • Sélectionnez "Classic" dans la section "Managed pipeline mode"

  • Sélectionnez "Start application pool immediately"

  • Cliquez "OK"

  • Dans l'arborescence du server, naviguez vers le répertoire de l'application à isoler
  • Cliquez droits puis sélectionnez "Manage Application > Advanced Settings"

  • Dans la fenêtre "Advanced Settings > General > Application Pool" cliquez sur le sélecteur (bouton "...")
  • Dans la liste de pool sélectionnez le pool prévu pour l'application (ici "Altiris-NS-Agent")
  • Cliquez "OK"

  • Rafraichissez la fenêtre (F5) et le nouveau pool applicatif apparait avec 1 application (telle que nous venons de le configurer)

  • Répétez l'opération de manière à créer les pools nécessaire ou désiré...

à