Conso cpu élevée du spoolsv au lancement appli publiée XenApp 6.5 / W2K8 R2 SP1

Bonjour tout le monde,





Je rencontre un énorme problème de performance sur ma ferme TSE / Citrix.

(2008 R2 SP1 + XenApp 6.5 Rollup 01)



Dans l’absolu tout fonctionne correctement sauf à l’ouverture de session :



Au moment de « la préparation du bureau » lorsqu’une application publiée est lancée, le serveur TSE/Citrix grimpe en charge cpu et c’est le spoolsv.exe du serveur STE/Citrix qui consomme le cpu.

Une fois les imprimantes mappée, tout revient à la normale. Je note également une pointe à la fermeture de session mais bcp plus brève. De fait mes utilisateurs rament énormément à l’ouverture de sessions et parfois en journée lorsque des utilisateurs se reconnectent (changement de site, etc…)







*** La courbe a été réalisée de nuit avec 1 user connecté… Imaginez lorsque 45 personnes se connectent en même temps ou que le serveur est en charge de travail… ***



A noter dans les courbes que je présente que mon profil n’a que 3 ou 4 imprimantes mappées.





Alors comment est-ce que je mappe mes imprimantes pour mes users TSE/Citrix.

Tout bêtement via groupe / GPO / serveur d’impression dédié.



L’ensemble de mes imprimantes sont installées et configurées sur un serveur d’impression.

Les utilisateurs font partie d’un groupe AD

Une GPO lit le groupe du user et lance un vbs en fonction de son appartenance : Exemple : Groupe IMP_BAT1 → vbs impbat1.vbs



Le contenu du VBS est le suivant :


'#####################################################################################################
'# Script : Connexion Imprimantes
'# Site : BAT1
'# Version : 1.0
'#####################################################################################################

Option Explicit
on error resume next
Dim objNetwork, strLocal, strComputer, objWMIService, strPrinter, colPrinters, objPrinter, strUNCPrinter1, strUNCPrinter2, strUNCPrinter3, strUNCPrinter4, strUNCPrinter5, strUNCPrinter6
Set objNetwork = CreateObject("WScript.Network")

Const NETWORK = 22
Const LOCAL = 10
strComputer = "."
Set objWMIService = GetObject("winmgmts:\" & strComputer & "rootcimv2")
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")

strUNCPrinter1 = "\SRV_PRTXXX_BAT1_IMP01"
strUNCPrinter2 = "\SRV_PRTXXX_BAT1_IMP02"
strUNCPrinter3 = "\SRV_PRTXXX_BAT1_IMP03"
strUNCPrinter4 = "\SRV_PRTXXX_BAT1_IMP04"
strUNCPrinter5 = "\SRV_PRTXXX_BAT1_IMP05"
strUNCPrinter6 = "\SRV_PRTXXX_BAT1_IMP06"
objNetwork.AddWindowsPrinterConnection strUNCPrinter1
objNetwork.AddWindowsPrinterConnection strUNCPrinter2
objNetwork.AddWindowsPrinterConnection strUNCPrinter3
objNetwork.AddWindowsPrinterConnection strUNCPrinter4
objNetwork.AddWindowsPrinterConnection strUNCPrinter5
objNetwork.AddWindowsPrinterConnection strUNCPrinter6

WScript.Quit



Pour précision, mes serveurs TSE/Citrix sont up-to-date Microsoft.
Les drivers utilisés sur le serveur d'impression, le sont eux aussi.
Une copie des drivers utilisés (4 drivers au total) est disponible et installées sur chaque TSE/Citrix.
Les profils utilisateurs sont chargés et déchargé depuis un serveur de fichier.


Petit ajout :


Dans les events Print Service (que j'ai activé, il y a un trafic de dingue. Chaque ouverture de session avec 3 imprimantes mappée génère 538 entrées "informations" dans le log...

Grosso modo :

260 suppressions de formulaires :




Puis 260 ajouts de formulaires...

Et enfin 18 events comme ci-dessous :




En fait j'ai l'impression que le serveur passe son temps à charger et décharger les imprimantes et la configuration qui va avec... Ce qui ne pose pas de problème en soi quand il n'y a que 3/4 users... Mais qui en pose une fois qu'il y en a 30 ou 40 sur les mêmes horaires...
N'est il pas possible de ne pas charger/décharger la configuration?


J'ai tenté de regarder la consommation CPU au lancement d'un Notepad avec comme imprimante une locale sur mon poste remontée via stratégie Citrix et forçage de l'utilisation du Citrix Driver Universel... La consommation cpu du spoolsv sur le serveur sur lequel je tombe est pire que via la méthode map/GPO...




Une idée de ce qu'il faut faire pour stopper cette consommation CPU et rendre à mes utilisateurs des serveurs où cela ne ralentit pas toute la journée????
Je suis vraiment désespéré... Car en dehors de cela tout le reste fonctionne bien, le seul point noir est ce spoolsv qui consomme trop de cpu et fait ralentir tout le monde...
Merci par avance pour votre aide ou vos idées.