Viele Citrix- oder Terminalserver- Farmen haben Probleme mit Druckertreibern und mach mal ist dem Administrator dies nicht bewusst. Druckertreiber die nicht 100% für Multiuser Umgebungen erstellt wurden können negativen Einfluss auf verschiedene Aspekte haben. Oft verursachen diese "Buggy" Treiber eine langsamere Anmeldung oder eine kurzfristige hohe CPU Last. Im schlimmsten Fall können Druckertreiber die Server Anmeldung ganz verhindern, den Druckdienst "unsanft" beenden oder aber einen "Blue Screen of Death" (BSOD, recht selten mit Windows 2003 und höher) herbeiführen.

Die Problemanalyse war bisher oft komplex und erforderte tiefgehende Kenntnis mit Druckertreibern. Wurde dann endlich der Treiber gefunden (oft durch analysieren einer Crash Dump Datei) und die Information an den Hersteller weitergeleitet, endete dies oft mit der Aussage des Herstellers, dass dieses Problem in dessen Umgebung nicht nachzustellen sein.

Um diese "schlechten" Druckertreiber zu finden und besser noch dabei eine Terminalserver Szenario nachzubilden, hat Citrix das Utility mit dem Namen "AddPrinter" veröffentlicht. Später haben Citrix Entwickler eine GUI für AddPrinter erstellt und dies mit dem treffenden Namen "StressPrinters" versehen. Mit StressPrinters können Administratoren einfach Drucker "stressen", unter Last setzen und dabei eine Terminalserver Umgebung simulieren. Dies ist sehr hilfreich für Administratoren und gleichzeitig können Hersteller ein vorliegendes Problem exakt nachstellen.

Citrix hat das Utility bereits an alle namenhaften Druckerhersteller weitergegeben in der Hoffnung, dass künftige Druckertreiber reibungsfrei in Terminalserver Umgebungen arbeiten. In der Zwischenzeit ist es für Administratoren von Multiuser Farmen (Citrix, Terminalserver etc.) empfehlenswert all ihre Druckertreiber mit StressPrinters testen.

 

Citrix StressPrinters verstehen

StressPrinters erstellt und löscht automatisch Druckerobjekte, die zuvor in der GUI von StressPrinters definiert wurden. Das Erstellen und Löschen erfolgt dabei innerhalb einer sehr kurzen Zeit und damit werden Spitzenzeiten der An- und Abmeldung simuliert. Wie intensiv der Test das Verhalten simulieren soll, wird durch den Administrator festgelegt. Der Test von Druckertreibern kann eine sehr hohe CPU Last hervorrufen und sollte daher nicht auf produktiven Servern ausgeführt werden. StressPrinters ist nicht abhängig von einer bestimmten Citrix Komponente und kann daher für jede Multiuser Umgebung verwendet werden. StressPrinters arbeitet sogar auf einer Windows XP Workstation. Dies erlaubt dann auch Herstellern von Druckern und deren Treibern die exakt gleiche Situation nachzustellen und dafür eine Lösung zu finden.

 

StressPrinters verwenden

Die Verwendung von StressPrinters ist sehr einfach. Unter CTX109374 steht StressPrinters zum Herunterladen bereit. Eine Anmeldung ist erforderlich, der Download ist aber kostenfrei. Die Zip Datei sollte in einen Ordner auf einem nicht produktiven Server entpackt werden, auf dem auch alle verwendeten Druckertreiber installiert sind.

 

Der einfache Drucker stress Test

Nach dem Start von StressPrinters erscheint nachfolgendes Fenster:

Alle zu testenden Drucker auswählen und Angabe der Anzahl von Wiederholungen für das Anlegen und Löschen des Druckers (4-5 ist zu empfehlen) festlegen. Optional können weitere Parameter gesetzt werden, sind aber nicht zwingend. Eine Beschreibung aller Optionen ist unter dem zuvor genannten Artikel zu finden. Ein Klick auf "run" und StressPrinters startet den Test der Druckertreiber. Während des Tests ist ein "Output" Fenster zu sehen, welches den Status des Tests ausgibt. 

Im besten Fall wird nicht mehr als "Successful… done with 0 errors" im Ausgabefenster zu sehen sein. Es könnten einige "Warnings" auftauchen, die darauf deuten, dass der Druckertreiber evtl. mehr Zeit für die Erstellung oder Löschung des Druckers braucht. 

Sollte aber der Druckerdienst während des Test "Hängen" oder sogar sich ganz beenden (Crash), dann resultiert dies von schlechten Druckertreibern. Damit sollten diese Treiber auf keinen Fall produktiv eingesetzt werden. Grundsätzlich ist es empfehlenswert jeden Druckertreiber mit StessPrinterns zu testen, BEVOR dieser in der Produktivumgebung eingesetzt wird. Dies gilt besonders auch für Treiber auf Druckserver, auf die ein Terminalserver oder Citrix Server zugreift.

 

Der erweiterte Drucker stress Test

Es gibt Gründe einen erweiterten Druckertreiber stress Test durchzuführen. Treiber können den Test bestehen benötigen aber ungewöhnlich viel Zeit oder belasten die CPU zu intensiv. Diese Parameter sollten während des Tests beobachtet werden, um den An- und Abmeldeprozess weiter zu optimieren.

 

Beispiel StressPrinters Test mit nativen und nicht-nativen Treibern
Das nachfolgende Bild zeigt das Ergebnis von StressPrinters von einem nativen und einem nicht nativen Druckertreiber. Der HP Treiber ist hier nur ein Beispiel, könnte aber mit jedem Hersteller möglich sein.

Druckertreiber Test mit den folgenden StressPrinters Einstellungen:
Anzahl der Events zur Erstellung/Löschung: 1
Maximum Wartezeit: 0 ms
Test Wiederholung: 0
Ausführlicher Modus: aktiv

Die "Warnings" sind nicht so wichtig und grundsätzlich sind beide Treiber für eine TS Umgebung geeignet. Augenfällig sind aber die benötigten Zeiten für den Test. Der native Treiber brauchte 9 Sekunden, der nicht native benötigte für den gleichen Test 54 Sekunden!
Hier sollte der stress Test mit Microsoft Performance Monitor genauer beobachtet werden; Prozess "spoolsv.exe" überwachen.


HP LaserJet 4100 Series PCL – nativ Microsoft Printer Driver
Zeit für Drucker Erstellung/Löschung  9 Sekunden bei max. ~ 18% CPU Nutzung auf Intel Core Duo
Anmeldung: 6 Sekunden / ~18% CPU , Abmeldung: 3 Sekunden / ~11% CPU, max. Context Switches 1.000

 

HP LaserJet  4250 PCL6 non-nativ HP Printer Driver (61.63.461.42)
Zeit für Drucker Erstellung/Löschung  54 Sekunden bei ~ 65% CPU Nutzung auf Intel Core Duo
Anmeldung: 6 Sekunden / ~18% CPU , Abmeldung: 48 Sekunden / ~65% CPU, max. Context Switches 10.000

 

Aus den Darstellungen zuvor wird deutlich, dass der nicht native Treiber deutlich mehr Server Ressourcen als der native verwendet. Diese Beanspruchung beeinflusst dramatisch den An- und Abmeldeprozess. Oft haben Benutzer etwa 5-15 eingerichtete Drucker. Wenn diese alle viele Ressourcen benötigen, dann kann die An- und Abmeldung sehr lange dauern.

 

Zusammenfassung

Citrix StressPrinters sollte verwendet werden, um JEDEN Druckertreiber zu Testen bevor dieser auf produktive Server (Citrix, Terminalserver, Druckserver) installiert wird. Während des stress Test unbedingt die CPU Belastung und Laufzeit bewerten und ggf. einen geeigneteren Treiber suchen. Die Verwendung von StressPrinters hilft bei der Minimierung von einigen Problemen der An- und Abmeldung, dessen Ursache in schlechten Druckertreibern liegt. Vielen Administratoren ist dabei nicht bewusst, dass Druckertreiber diesen Einfluss haben können.

 


Referenzen


Kommentar schreiben