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.
Überlegungen zur SMB-Konfiguration
Stellen Sie sicher, dass die BIOS- und Betriebssystem-Energieverwaltungsmodi nach Bedarf festgelegt werden, was den Modus "Hohe Leistung" oder den geänderten C-Zustand umfassen kann. Stellen Sie sicher, dass die neuesten, stabilsten und schnellsten Speicher- und Netzwerkgerätetreiber installiert werden, bevor Sie eine SMB-Optimierung (Server Message Block) konfigurieren.
Aktivieren Sie keine Dienste oder Features, die ihr Dateiserver und Ihre Clients nicht benötigen. Erwägen Sie das Deaktivieren unnötiger Dienste oder Features, z. B.:
- Clientseitiges Caching
- Minifilter des Dateisystems
- Firewall-Filter
- IPSEC (IPSEC)
- NTFS-Komprimierung
- NTFS-Verschlüsselung
- Geplante Vorgänge
- Suchdienst
- SMB-Verschlüsselung
- SMB-Signierung
- Teredo
Das Kopieren von Dateien ist ein gängiger Vorgang, der auf einem Dateiserver ausgeführt wird. Windows Server verfügt über mehrere integrierte Dateikopieprogramme, die Sie mithilfe einer Eingabeaufforderung ausführen können. Robocopy wird für diese Vorgänge empfohlen. Windows Server 2008 R2 hat die /mt
Option "Robocopy" eingeführt, die die Geschwindigkeit bei Remotedateiübertragungen erheblich verbessert, indem mehrere Threads beim Kopieren mehrerer kleiner Dateien verwendet werden. Wir empfehlen außerdem die Verwendung der /log
Option, um die Konsolenausgabe zu reduzieren, indem Protokolle an ein NUL-Gerät oder an eine Datei umgeleitet werden. Wenn Sie xcopy
verwenden, empfehlen wir, die Optionen /q
und /k
zu Ihren bestehenden Parametern hinzuzufügen. Die frühere Option reduziert den CPU-Aufwand, indem die Konsolenausgabe reduziert wird und letzteres den Netzwerkdatenverkehr reduziert.
SMB-Leistungsoptimierung
Die Leistung von Dateiservern und die verfügbaren Optimierungen hängen vom SMB-Protokoll ab, das zwischen jedem Client und dem Server ausgehandelt wird, und von den bereitgestellten Dateiserverfeatures. Die höchste derzeit verfügbare Protokollversion ist SMB 3.1.1 in Windows Server 2022, Windows Server 2016 und Windows 10. Sie können überprüfen, welche SMB-Version in Ihrem Netzwerk verwendet wird, indem Sie Windows PowerShell Get-SMBConnection
auf Clients und Get-SMBSession | FL
auf Servern verwenden.
SMB 3.0-Protokollfamilie
SMB 3.0 wurde in Windows Server 2012 eingeführt und in Windows Server 2012 R2 (SMB 3.02) und Windows Server 2016 (SMB 3.1.1) weiter verbessert. Diese Version hat Technologien eingeführt, die die Leistung und Verfügbarkeit des Dateiservers erheblich verbessern können. Weitere Informationen finden Sie unter SMB in Windows Server 2012 und 2012 R2 2012 und Neuigkeiten in SMB 3.1.1.
SMB Direct
SMB Direct hat die Möglichkeit eingeführt, RDMA-Netzwerkschnittstellen für hohen Durchsatz mit geringer Latenz und geringer CPU-Auslastung zu verwenden.
Wenn SMB ein RDMA-fähiges Netzwerk erkennt, wird automatisch versucht, die RDMA-Funktion zu verwenden. Wenn der SMB-Client keine Verbindung mit dem RDMA-Pfad herstellen kann, greift er auf die Verwendung von TCP/IP-Verbindungen zurück. Alle RDMA-Schnittstellen, die mit SMB Direct kompatibel sind, müssen auch einen TCP/IP-Stapel implementieren, und SMB Multichannel erkennt dies.
SMB Direct ist in keiner SMB-Konfiguration erforderlich, es wird jedoch immer für Benutzer empfohlen, die niedrigere Latenz und eine geringere CPU-Auslastung wünschen.
Weitere Informationen zu SMB Direct finden Sie unter "Verbessern der Leistung eines Dateiservers mit SMB Direct".
SMB Multichannel
SMB Multichannel ermöglicht Dateiservern die gleichzeitige Verwendung mehrerer Netzwerkverbindungen und bietet einen erhöhten Durchsatz.
Weitere Informationen zu SMB Multichannel finden Sie unter Bereitstellen von SMB Multichannel.
Horizontale SMB-Skalierung
Die horizontale SMB-Skalierung ermöglicht es SMB 3.0 in einer Clusterkonfiguration, eine Freigabe auf allen Knoten eines Clusters anzuzeigen. Diese Aktiv/Aktiv-Konfiguration ermöglicht die weitere Skalierung von Dateiserverclustern ohne eine komplexe Konfiguration mit mehreren Volumes, Freigaben und Clusterressourcen. Die maximale Freigabebandbreite ist die Gesamtbandbreite aller Dateiserverclusterknoten. Die Gesamtbandbreite ist nicht mehr durch die Bandbreite eines einzelnen Clusterknotens begrenzt, sondern hängt vielmehr von der Funktion des Sicherungsspeichersystems ab. Sie können die Gesamtbandbreite erhöhen, indem Sie Knoten hinzufügen.
Weitere Informationen zu SMB-Scale-Out finden Sie unter Scale-Out File Server for Application Data Overview und im Blogbeitrag Soll man skalieren oder nicht skalieren, das ist die Frage.
Leistungsindikatoren für SMB 3.0
Die folgenden SMB-Leistungsindikatoren wurden in Windows Server 2012 eingeführt, sie werden als Basissatz von Leistungsindikatoren betrachtet, wenn Sie die Ressourcennutzung von SMB 2 und höheren Versionen überwachen. Protokollieren Sie die Leistungsindikatoren in einem lokalen, unformatierten Leistungsindikatorprotokoll (.blg). Es ist kostengünstiger, alle Instanzen mithilfe des Platzhalterzeichens (*) zu sammeln und dann bestimmte Instanzen während der Nachbearbeitung mithilfe von Relog.exezu extrahieren.
SMB-Clientfreigaben
Diese Zähler zeigen Informationen zu Dateifreigaben auf dem Server an, auf die von Clients mit SMB 2.0 oder höher zugegriffen wird.
Wenn Sie mit den regulären Datenträgerzählern in Windows vertraut sind, bemerken Sie möglicherweise eine bestimmte Ähnlichkeit. Das ist nicht zufällig. Die Leistungsindikatoren für SMB-Clientfreigaben wurden so konzipiert, dass sie genau mit den Datenträgerindikatoren übereinstimmen. Auf diese Weise können Sie alle Anleitungen zur Leistungsoptimierung von Festplatten für Anwendungen problemlos wiederverwenden. Weitere Informationen zur Zählerzuordnung finden Sie im Blog zu Clientleistungsindikatoren pro Freigabe.
SMB-Serverfreigaben
Diese Zähler zeigen Informationen zu den SMB 2.0- oder höheren Dateifreigaben auf dem Server an.
SMB-Serversitzungen
Diese Leistungsindikatoren zeigen Informationen zu SMB-Serversitzungen an, die SMB 2.0 oder höher verwenden.
Das serverseitige Aktivieren von Zählern (Serverfreigaben oder Serversitzungen) kann erhebliche Auswirkungen auf die Leistung bei hohen E/A-Workloads haben.
Fortsetzungsschlüsselfilter
Diese Leistungsindikatoren zeigen Informationen zum Fortsetzungsschlüsselfilter an.
Direkte SMB-Verbindung
Diese Zähler messen unterschiedliche Aspekte der Verbindungsaktivität. Ein Computer kann mehrere SMB Direct-Verbindungen haben. SMB Direct Connection-Zähler stellen jede Verbindung als ein Paar aus IP-Adressen und Ports dar. Die erste IP-Adresse und der erste Port stellen den lokalen Endpunkt der Verbindung dar, und die zweite IP-Adresse und der zweite Port stellen den Remoteendpunkt der Verbindung dar.
Beziehungen zwischen Leistungsindikatoren für physische Datenträger, SMB und CSV FS
Weitere Informationen dazu, wie physische Datenträger-, SMB- und CSV FS-Indikatoren (Dateisystem) zusammenhängen, finden Sie im folgenden Blogbeitrag: Cluster Shared Volume Performance Counters.
Optimierungsparameter für SMB-Dateiserver
Die folgenden REG_DWORD
Registrierungseinstellungen können sich auf die Leistung von SMB-Dateiservern auswirken:
Smb2CreditsMin und Smb2CreditsMax
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMin
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\Smb2CreditsMax
Die Standardwerte sind 512 bzw. 8192 für Windows Server. Diese Parameter ermöglichen es dem Server, die Clientoperation dynamisch innerhalb der angegebenen Grenzen zu drosseln. Einige Clients erzielen möglicherweise einen erhöhten Durchsatz mit höheren Parallelitätsgrenzwerten, z. B. das Kopieren von Dateien über Verbindungen mit hoher Bandbreite, hoher Latenz. Diese Standardwerte gelten für Windows Server und nicht für Windows.
Tipp
Vor Windows 10 und Windows Server 2016 variierte die Anzahl der Guthaben, die dem Client gewährt wurden, dynamisch zwischen Smb2CreditsMin und Smb2CreditsMax basierend auf einem Algorithmus, der versucht hat, die optimale Anzahl von Krediten zu ermitteln, die basierend auf Netzwerklatenz und Kreditnutzung gewährt werden sollen. In Windows 10 und Windows Server 2016 wurde der SMB-Server geändert, um Guthaben auf Anforderung bis zur konfigurierten maximalen Anzahl von Gutschriften bedingungslos zu gewähren. Im Rahmen dieser Änderung wurde der Mechanismus zur Drosselung der Kreditwürdigkeit, der die Größe des Kreditfensters der einzelnen Verbindungen reduziert, wenn der Server unter Speicherdruck steht, entfernt. Das Low-Memory-Ereignis des Kernels, das die Drosselung ausgelöst hat, wird nur signalisiert, wenn der Server so wenig Arbeitsspeicher (< ein paar MB) hat, dass er praktisch unbrauchbar ist. Da der Server keine Kreditfenster mehr verkleinern kann, ist die Smb2CreditsMin-Einstellung nicht mehr erforderlich und wird nun ignoriert.
Sie können „SMB Client Shares\Credit Stalls /Sec“Kredit überwachen, um festzustellen, ob Probleme mit Credits vorliegen.
AdditionalCriticalWorkerThreads
HKLM\System\CurrentControlSet\Control\Session Manager\Executive\AdditionalCriticalWorkerThreads
Der Standardwert ist 0, was bedeutet, dass keine kritischen Kernel-Workerthreads hinzugefügt werden. Dieser Wert wirkt sich auf die Anzahl der Threads aus, die der Dateisystemcache für Read-Ahead- und Write-Behind-Anforderungen verwendet. Das Erhöhen dieses Werts kann eine größere E/A-Warteschlange im Speichersubsystem ermöglichen und die E/A-Leistung verbessern, insbesondere auf Systemen mit vielen logischen Prozessoren und leistungsstarker Speicherhardware.
Hinweis
Diese Einstellung gilt hauptsächlich für Windows 7, Windows Server 2008 R2 und ältere Betriebssysteme. In späteren Versionen von Betriebssystemen nutzt der Cache-Manager diesen Wert weiterhin indirekt, erstellt jedoch keine dedizierten Arbeitsthreads mehr; vielmehr beeinflusst dieser Wert indirekt, wie viele Aufgabenelemente jeder Art (generische Arbeiter, Lazy Writer usw.) der Cache-Manager für eine spätere Übermittlung an den Kernel-Thread-Pool zuweisen wird.
Tipp
Erwägen Sie, den Wert zu erhöhen, wenn die schmutzigen Daten des Cache-Managers (Leistungsindikator Cache\Dirty Pages) ungefähr 25% Arbeitsspeicher überschreiten oder wenn das System zahlreiche synchrone Lese-E/A-Vorgänge ausführt.
MaxThreadsPerNumaNode
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\MaxThreadsPerNumaNode
Der Standardwert ist 20. Wenn Sie diesen Wert erhöhen, steigt die Anzahl der Threads, die der Dateiserver zum Verarbeiten gleichzeitiger Anforderungen verwenden kann. Wenn eine große Anzahl aktiver Verbindungen bedient werden muss, kann eine Erhöhung des Wertes die Leistung verbessern, wenn ineffiziente Drittanbieterfiltertreiber die E/A beeinträchtigen. Es ist besser, aktualisierte Drittanbieterfiltertreiber und Drucktreiber zu installieren, die E/A effizienter verarbeiten, anstatt diese Einstellung zu ändern.
Tipp
Ein Hinweis darauf, dass der Wert möglicherweise erhöht werden muss, ist, wenn die SMB2-Arbeitswarteschlangen relativ groß werden (Leistungsindikator "ServerArbeitswarteschlangen\Warteschlangenlänge\SMB2 NonBlocking *" ist konsistent über ~100).
Hinweis
In SMB1 und windows Server 2012 und Windows Server 2008 wurde MaxThreadsPerQueue verwendet, um diese Einstellung zu steuern. SMB1 ist veraltet und nicht mehr installiert, und diese Einstellung selbst wird jetzt zurückgestellt.
AsynchroneCredits
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters\AsynchronousCredits
Der Standardwert liegt bei 512. Dieser Parameter beschränkt die Anzahl gleichzeitiger asynchroner SMB-Befehle, die für eine einzelne Verbindung zulässig sind. In einigen Fällen (z. B. wenn ein Front-End-Server mit einem Back-End-IIS-Server vorhanden ist) ist eine große Anzahl an Parallelität erforderlich (insbesondere für Dateiänderungsbenachrichtigungsanforderungen). Der Wert dieses Eintrags kann erhöht werden, um diese Fälle zu unterstützen. Der Standardwert ist für Windows Server und nicht für Windows.
RemoteFileDirtyPageThreshold
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\RemoteFileDirtyPageThreshold
Der Standardwert ist 5 GB. Dieser Wert bestimmt die maximale Anzahl von schmutzigen Seiten im Cache (pro Dateibasis) für einen Remoteschreibvorgang, bevor ein Inline-Leeren ausgeführt wird. Es wird nicht empfohlen, diesen Wert zu ändern, es sei denn, das System erlebt bei schweren Remoteschreibvorgängen eine konsistente Verlangsamung. Dieses Verlangsamungsverhalten würde in der Regel gesehen, wenn der Client eine schnellere Speicher-E/A-Leistung als der Remoteserver aufweist. Die Einstellungsänderung wird auf den Server angewendet. Client und Server beziehen sich auf die verteilte Systemarchitektur, nicht auf bestimmte Betriebssysteme; Beispielsweise würde ein Windows Server, der Daten in einen anderen Windows Server über SMB kopiert, weiterhin einen SMB-Client und einen SMB-Server umfassen. Weitere Informationen finden Sie unter Problembehandlung für Cache- und Speicher-Manager-Leistungsprobleme.
SMB-Serveroptimierungsbeispiel
Die folgenden Einstellungen können einen Computer für die Leistung des Dateiservers in vielen Fällen optimieren. Die Einstellungen sind auf allen Computern nicht optimal oder angemessen. Sie sollten die Auswirkungen einzelner Einstellungen bewerten, bevor Sie sie anwenden.
Parameter | Wert | Standard |
---|---|---|
AdditionalCriticalWorkerThreads | 64 | 0 |
Leistungsindikatorzähler für den SMB-Client
Weitere Informationen zu SMB-Clientindikatoren finden Sie unter Tipp zu Windows Server 2012-Dateiserver: Neue Leistungsindikatoren für SMB-Clients pro Freigabe bieten hervorragende Erkenntnisse.