Moin WSUS-Profis,
erstmal was zu unserer Umgebung.
HP DL380 G4 Server
2x Xeon 3 GHz
3 GB RAM
System-Partition: RAID1 aus 2x 75 GB SCSI
Daten-Partition: RAID5 aus 3x 75 GB SCSI
Windows Server 2003 Standard Edition R2 mit SP 2, alle aktuellen Patches
Microsoft SQL Server 2005 mit SP 3, ebenfalls aktuelle Patches
WSUS 3.0 mit SP2
Der WSUS-Server muss läppische 50 Clients verwalten, das sollte er ja gut hinbekommen.
Der SQL-Server soll hauptsächlich für unser Produktionssystem zur Verfügung stehen (eine Art ERP-System für unsere Fertigung). Die Datenbank für dieses Produktionssystem misst immerhin 25 GB Daten (plus Log). Nebenbei soll der SQL-Server noch das WSUS-Backend darstellen.
Das Problem ist, das unser Produktionssystem zunehmend langsamer läuft. Die ganze Applikation läuft schleppend, es dauert mehrere Sekunden, bis die Masken sich öffnen, etc. pp. Derlei Beschwerden höre ich als Admin mittlerweile täglich.

Bei einigen Applikationen wird die Abfrage sogar nach 30 Sekunden abgebrochen, weil der SQL-Server länger braucht.
Bei der Analyse des Problems ist mir nun aufgefallen, dass der WSUS wohl sehr gerne und häufig mit dem SQL-Server "spricht".

Der SQL-Server stellt einen Bericht zur Verfügung, der sich "Serverdashboard" nennt, dort wird die CPU-Verwendung und der I/O nach Datenbanken aufgeschlüsselt. Es hat mich doch sehr erstaunt, dass der Server seit dem letzten Neustart (05. September) folgendes mitgeschrieben hat:
Datenbank | CPU | I/O |
Produktion | 25% | 33% |
SUSDB | 75% | 67% |
Das kann doch nicht wahr sein

Ich habe dann den Server Profiler mitlaufen lassen und mir nur die Zugriffe auf die SUSDB ausfiltern lassen. Und siehe da, es greifen sekündlich Prozesse vom WSUS darauf zu. Die Prozesse heissen ClientWS, ServerSyncWS, ReportingWS, wsusservice und SimpleAuthWS.
Sie führen grossteils eine Stored Procedure aus namens "spGetChangeTrackingInformation", einer der Parameter ist die aktuelle Systemzeit. Die Stored Procdure läuft bis zu 5 Sekunden und führt bis zu 100.000 (!) Lesevorgänge durch.
Warum greifen diese Prozesse im Sekundentakt auf die Datenbank zu? Da kann ich nämlich verstehen, dass der SQL-Server zum Großteil mit dem WSUS beschäftigt ist und unser Produktionssystem vernachlässigt. Ist das ein Konfigurationsfehler? Leider habe ich keine Einstellungen hierzu im WSUS gefunden. Kann ich diese Frequenz herabsetzen?
Alternativ: kann ich im SQL-Server Prioritäten setzen, so dass er die Produktions-Datenbank höher priorisiert? Oder kann ich Begrenzungen für die SUSDB setzen, z.B. dass er maximal xx % der CPU dafür aufwenden darf?
Es wäre interessant, ob das bei anderen Benutzern von WSUS mit einem SQL-Server als Backend auch so ist. Vielleicht mag einer der Leser mal seinen SQL Server Profiler anwerfen und prüfen, ob seine Prozesse auch so häufig auf die Datenbank zugreifen?
Wenn sich die Frequenz der Zugriffe nicht senken lässt, werde ich wohl den WSUS vom SQL-Server auf diese integrierte Datenbank umstellen müssen. Gibt es dazu bereits Erfahrungen?
Grüsse aus Kiel,
Martin