Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie das Problem mit einer hohen CPU-Auslastung auf dem SMB-Server beheben.
Hohe CPU-Auslastung aufgrund von Speicherleistungsproblemen
Speicherleistungsprobleme können auf SMB-Servern zu einer hohen CPU-Auslastung führen. Stellen Sie vor der Problembehandlung sicher, dass das neueste Updaterollup auf dem SMB-Server installiert ist, um bekannte Probleme in srv2.sys zu beseitigen.
In den meisten Fällen werden Sie das Problem einer hohen CPU-Auslastung im Systemprozess feststellen. Bevor Sie fortfahren, verwenden Sie den Prozess-Explorer, um sicherzustellen, dass srv2.sys oder ntfs.sys übermäßige CPU-Ressourcen verbrauchen.
SAN-Szenario (Storage Area Network)
Auf Aggregatebenen scheint die SAN-Gesamtleistung in Ordnung zu sein. Bei der Arbeit mit SMB-Problemen ist jedoch die Antwortzeit auf die einzelnen Anforderungen am wichtigsten.
Im Allgemeinen kann dieses Problem durch eine Art von Befehlswarteschlange im SAN verursacht werden. Mit Perfmon können Sie eine Microsoft-Windows-StorPort-Ablaufverfolgung erfassen und analysieren, um die Reaktionsfähigkeit des Speichers genau zu bestimmen.
Datenträger-E/A-Latenz
Die Datenträger-E/A-Latenz ist ein Messwert für die Verzögerung zwischen dem Erstellungs- und dem Abschlusszeitpunkt der Datenträger-E/A-Anforderung.
Die E/A-Latenz, die in Perfmon gemessen wird, umfasst die gesamte Zeit, die eine E/A-Anforderung in den Hardwareschichten sowie in der Microsoft-Porttreiberwarteschlange (Storport.sys für SCSI) verbringt. Wenn die ausgeführten Prozesse eine große StorPort-Warteschlange generieren, erhöht sich die gemessene Latenz. Dies liegt daran, dass E/A warten muss, bevor sie an die Hardwareebenen verteilt wird.
Die folgenden Leistungsindikatoren zeigen in Perfmon die Latenz des physischen Datenträgers an:
- "Physische Datenträgerleistungsobjekt" –> "Durchschn. Datenträger sek./Lesezähler" – Zeigt die durchschnittliche Leselatenz an.
- "Physisches Datenträgerleistungsobjekt" –> "Durchschn. Datenträger sec/Write counter" – Dies zeigt die durchschnittliche Schreiblatenz.
- "Physisches Datenträgerleistungsobjekt" –> "Durchschn. Datenträger sec/Transferzähler" – Dies zeigt die kombinierten Mittelwerte für Lese- und Schreibvorgänge an.
Die Instanz „_Total" ist ein Mittelwert der Latenzen für alle physischen Datenträger im Computer. Jede andere Instanz stellt einen einzelnen physischen Datenträger dar.
Hinweis
Verwechseln Sie diese Leistungsindikatoren nicht mit „Durchschn. Datenträgerübertragungen/Sek“. Dies sind völlig andere Leistungsindikatoren.
Windows-Speicherstapel
Dieser Abschnitt enthält eine kurze Erläuterung zum Windows-Speicherstapel.
Wenn eine Anwendung eine E/A-Anforderung erstellt, sendet sie die Anforderung an das Windows-E/A-Subsystem ganz oben im Stapel. Die E/A-Anforderung durchläuft dann den ganzen Stapel nach unten bis zum Hardwaresubsystem „Datenträger“. Anschließend durchläuft die Antwort wieder den ganzen Weg nach oben. Bei diesem Prozess erfüllt jede Schicht ihre Funktion und übergibt die E/A-Anforderung dann an die nächste Schicht.
Perfmon erstellt keine Leistungsdaten pro Sekunde. Stattdessen werden Daten verwendet, die von anderen Subsystemen in Windows bereitgestellt werden.
Für das „physische Datenträgerleistungsobjekt“ werden die Daten im Speicherstapel auf der Schicht „Partitions-Manager“ erfasst.
Bei der Messung der im vorherigen Abschnitt erwähnten Leistungsindikatoren wird die gesamte Aufenthaltsdauer der Anforderung unterhalb der Schicht „Partitions-Manager“ gemessen. Wenn der Partitions-Manager die E/A-Anforderung im Stapel nach unten sendet, wird sie mit einem Zeitstempel versehen. Auf dem Rückweg wird sie erneut mit einem Zeitstempel versehen, und der Zeitunterschied wird berechnet. Dieser Zeitunterschied ist die Latenz.
Auf diese Weise wird die in den folgenden Komponenten verbrachte Zeit berücksichtigt:
- Klassentreiber: Hier wird der Gerätetyp (z. B. Datenträger, Bänder usw.) verwaltet.
- Porttreiber: Hier wird das Transportprotokoll (z. B. SCSI, FC, SATA usw.) verwaltet.
- Geräte-Miniporttreiber: Dies ist der Gerätetreiber für den Speicheradapter. Er wird vom Gerätehersteller bereitgestellt, z. B. RAID-Controller und FC HBA.
- Datenträgersubsystem: Dies beinhaltet alles, was sich unterhalb des Geräte-Miniporttreibers befindet. Das kann ein einfaches Kabel sein, das mit einer einzelnen physischen Festplatte verbunden ist, oder auch ein komplexes SAN (Storage Area Network). Wenn Sie herausfinden, dass diese Komponente das Problem verursacht, können Sie sich an den Hardwareanbieter wenden, um weitere Informationen zur Problembehebung zu erhalten.
Datenträgerwarteschlangen
Ein Datenträgersubsystem kann zu einem bestimmten Zeitpunkt nur eine begrenzte Menge von E/A-Anforderungen akzeptieren. Die darüber hinausgehenden E/A-Anforderungen werden in die Warteschlange eingereiht, bis der Datenträger wieder E/A-Anforderungen akzeptieren kann. Die Aufenthaltsdauer der E/A-Anforderung in den Warteschlangen unterhalb der Schicht „Partitions-Manager“ wird in den Perfmon-Latenzmessungen für physische Datenträger berücksichtigt. Wenn Warteschlangen größer werden und die E/A-Anforderungen länger warten müssen, erhöht sich auch die gemessene Latenz.
Unterhalb der Schicht „Partitions-Manager“ gibt es mehrere Warteschlangen. Dazu zählen:
- Microsoft-Porttreiberwarteschlange: SCSIport- oder StorPort-Warteschlange
- Vom Hersteller bereitgestellte Gerätetreiberwarteschlange: OEM-Gerätetreiber
- Hardwarewarteschlangen – z. B. Datenträgercontrollerwarteschlange, SAN-Switches-Warteschlange, Arraycontroller-Warteschlange und Festplattenwarteschlange
Auch die von der Festplatte aktiv für die Behandlung der E/A-Anforderung aufwendete Zeit, und die Zeit, die die Anforderung benötigt, um zur Schicht „Partitions-Manager“ zurückzukehren und als abgeschlossen markiert zu werden, wird berücksichtigt.
Schließlich müssen wir der Porttreiberwarteschlange (für SCSI Storport.sys) besondere Aufmerksamkeit widmen. Der Porttreiber ist die letzte Microsoft-Komponente, die in Kontakt mit einer E/A-Anforderung kommt, bevor diese an den vom Hersteller bereitgestellten Geräte-Miniporttreiber übergeben wird.
Wenn der Geräte-Miniporttreiber keine E/A-Anforderungen mehr akzeptieren kann, weil seine Warteschlange oder die nachfolgenden Hardwarewarteschlangen überlastet sind, werden die E/A-Anforderungen in der Porttreiberwarteschlange gesammelt. Die Microsoft-Porttreiberwarteschlange wird größenmäßig nur durch den verfügbaren Systemspeicher (RAM) beschränkt und kann sehr groß werden. Dies verursacht bei den Messungen eine hohe Latenz.
Hohe CPU-Auslastung durch Aufzählen von Ordnern
Deaktivieren Sie das ABE-Feature (Access Based Enumeration), um dieses Problem zu beheben.
Um zu ermitteln, welche SMB-Freigaben ABE aktiviert haben, führen Sie das folgende PowerShell-Cmdlet aus:
Get-SmbShare | Select Name, FolderEnumerationMode
Unrestricted
= ABE deaktiviert.
AccessBase
= ABE aktiviert.
Sie können ABE im Server-Manager aktivieren. Navigieren Sie zu Datei- und Speicherdienste>Freigaben, klicken Sie mit der rechten Maustaste auf die Freigabe, wählen Sie Eigenschaften aus, wechseln Sie zu Einstellungen, und wählen Sie dann Zugriffsbasierte Aufzählungen aktivieren aus.
Sie können auch den Wert ABELevel absenken (auf 1 oder 2), um die Leistung zu verbessern.
Wenn die Aufzählung langsam ist, können Sie die Datenträgerleistung überprüfen, indem Sie den Ordner lokal über eine Konsole oder eine RDP-Sitzung öffnen.