Freigeben über


Langsame Dateiübertragungsgeschwindigkeit bei SMB

Server Message Block (SMB) ist das standardmäßige Feature und Protokoll des Windows-Netzwerkdateisystems. Die Geschwindigkeit der Netzwerkdateiübertragung wird durch mehrere System- und Netzwerkfaktoren beeinflusst. Dieser Artikel enthält Schritte zum Beheben allgemeiner Leistungsprobleme bei der Dateiübertragung mithilfe von SMB.

Langsame Übertragung

Hinweis

SMB-Signierung und SMB-Verschlüsselung sind bekannt, um SMB-Übertragungen zu verlangsamen. Die Höhe des Leistungsverlusts hängt stark von den Funktionen der betroffenen Hardware ab. Die wichtigsten Faktoren sind die Anzahl und Geschwindigkeit der CPU-Kerne und wie viel CPU-Zeit anderen Workloads zugeordnet ist.

Ab Windows 11, Version 24H2 und Windows Server 2025, ist die SMB-Signatur standardmäßig erforderlich . Es wird nicht empfohlen, die SMB-Client- und Serversignaturanforderung zu deaktivieren, da sie erheblichen Schutz vor Spoofing-, Manipulations- und Relayangriffen bieten.

Die folgenden Schritte können verwendet werden, um häufige Probleme mit langsamen SMB-Übertragungen zu analysieren, zu beheben und zu beheben.

  • Verwenden Sie Robocopy über die Befehlszeile (Eingabeaufforderung oder PowerShell).

    • Explorer (der Windows-Datei-Manager) führt Einzelthreadkopien aus und verwendet gepufferte Eingabe-/Ausgabeübertragungen (E/A).
    • Robocopy ist für IT-Administratoren optimiert, um leistungsstarke lokale und Remotedateikopieaufgaben zu erstellen.
    • Explorer ist praktisch für die einfache Verwendung, aber es fehlen die Leistungsoptimierungen von Robocopy, die bestimmte Aufgaben erfordern.
  • Probieren Sie eine nicht gebufferte E/A-Kopie für Dateien mit mehr als 1 GB aus, indem Sie den robocopy /J Befehl über die Eingabeaufforderung oder PowerShell verwenden.

  • Aktivieren und Verwenden der SMB-Komprimierung.

    • Dies reduziert die Übertragungszeit und bandbreitenauslastung für große Dateien, die erhebliche Leerzeichen enthalten, wie z. B. Virtuelle Computerdatenträger (.vhd, .vhdx, .vmdkund .ovf), .isound .dmp Dateien.
    • Nicht komprimierbare Daten wie Archivdateien (.zip, .7zund .rar), Video (.mp4 und .mkv) sowie Audiodateien (.mp3 und .flac) sehen bei der SMB-Komprimierung keine signifikanten Leistungsverbesserungen.
    • SMB-Komprimierung ist ab Windows 11 und Windows Server 2022 verfügbar.
  • SMB-Geschwindigkeiten können durch die Speicherleistung eingeschränkt werden.

    • Stellen Sie sicher, dass der Sicherungsspeicher über die erforderlichen und verfügbaren Leistungsmerkmale verfügt, um den gewünschten Netzwerkdurchsatz zu erfüllen.

    • Die ungefähren Echtzeitspeicher-zu-Netzwerk-Leistungsgeschwindigkeiten über SMB lauten wie folgt:

      • 110 MB/s des dauerhaften Speicherdurchsatzes pro 1 Gbit/s Netzwerkbandbreite.
      • 1,1 GB/s des dauerhaften Speicherdurchsatzes pro 10 GBit/s Netzwerkbandbreite.
      • 11 GB/s des dauerhaften Speicherdurchsatzes pro 100 GBit/s Netzwerkbandbreite.
      • Diese Zahlen gehen davon aus, dass es keine weiteren Engpässe auf dem System gibt, z. B. CPU- oder Arbeitsspeicherausschöpfung, und es gibt keine Netzwerkfehler.
      • Beachten Sie, dass spitzen Speicherleistung häufig viel mehr als eine dauerhafte Speicherleistung ist und dass die meisten angekündigten Speichermessungen Spitzenleistung sind.
  • SMB Direct (SMB over Remote Direct Memory Access, RDMA)) kann erforderlich sein, um bestimmte Geschwindigkeiten der Netzwerkübertragung zu erreichen oder hohe Geschwindigkeiten zu erreichen, ohne eine hohe CPU-Auslastung zu verursachen.

  • Dateikopien beginnen schnell und verlangsamen dann.

    • Eine Änderung der Kopiergeschwindigkeit kann auftreten, wenn die anfängliche Kopie durch Speicher oder Puffer im Systemspeicher zwischengespeichert wird, und dann erreicht der Cache die Kapazität.

    • Daten werden dann direkt auf den Datenträger (Write-Through) zugesichert, sobald Speicherpuffer und Speichercaches erschöpft sind und die Leistung auf die Speichermedien beschränkt wird, die dauerhaften Schreibzugriffsbeschränkungen aufweisen.

    • Verwenden Sie RAMMap von Microsoft SysInternals, um zu ermitteln, ob die Verwendung zugeordneter Dateien im Arbeitsspeicher nicht mehr zunimmt.

      • Dies gibt an, dass der Speicherpuffer erschöpft ist.
      • RAMMap wird nicht automatisch aktualisiert. Verwenden Sie F5 auf der Tastatur oder Dateiaktualisierung>, um die Speicherauslastung zu aktualisieren.
    • Verwenden Sie Speicherleistungsüberwachungsindikatoren, um zu ermitteln, ob die Speicherleistung proportional zum Netzwerkdurchsatz beeinträchtigt wird. Weitere Informationen finden Sie unter Leistungsoptimierung für SMB-Dateiserver.

    • Passen Sie den Schwellenwert für schmutzige Remotedateien an, wenn die Leistung ungefähr alle 5 GB in Windows Server 2016 und höheren Versionen beeinträchtigt.

  • Übertragungen sind nur langsam, wenn bestimmte Technologien oder ein Scale-Out File Server (SOFS) verwendet werden.

    • Einige Technologien, in der Regel Sicherungen und Datenbanken, erfordern Datenträgerschreibvorgänge, um die Datenintegrität aufrechtzuerhalten.
    • Windows SOFS erfordert Schreibzugriff, ebenso wie SQL-Sicherungen.
    • Datenträgerschreibvorgänge erfordern, dass der Speichervorgang alle Speichercaches und Puffer umgeht und direkt auf das Speichermedium für den Vorgang übernommen werden muss.
    • In diesen Fällen kann ein Speichersystem, das keine hohe Schreibleistung bietet, keine leistungsfähigen SMB-Übertragungen bereitstellen.
  • Suchen Sie nach Anzeichen von Netzwerkfehlern. Häufige Netzwerkprobleme wie Paketverlust führen zu einer Drosselung auf Netzwerkebene durch den Tcp-Überlastungsalgorithmus (Transmission Control Protocol).

  • Ermitteln Sie den Leistungsaufwand von Antischadsoftware, indem Sie die SMB-Übertragungsleistung vorübergehend testen, wobei die Dateiüberprüfung deaktiviert ist, und deren Dateisystem- und Netzwerkfiltertreiber entladen werden.

  • Überprüfen Sie für SMB3, ob SMB Multichannel aktiviert und funktioniert.

  • Stellen Sie sicher, dass die Netzwerk-Offloading-Technologien aktiviert sind.

    • Die SMB-Leistung ist eng mit der Netzwerkleistung verbunden.
    • Netzwerk-Offloading-Technologien wie Receive Side Scaling (RSS), Large Send Offload (LSO), Receive Segment Coalescing (RSC) und TCP/UDP-Prüfsummen wurden entwickelt, um den Netzwerkdurchsatz zu verbessern und gleichzeitig die CPU-Auslastung des Netzwerkstapels zu verringern.
    • Deaktivieren Sie keine Netzwerkabladungen.
  • Stellen Sie auf dem SMB-Client sicher, dass die große maximale Übertragungseinheit (MTU) nicht deaktiviert ist und die Bandbreiteneinschränkung in SMB nicht aktiviert ist, indem Sie das folgende PowerShell-Cmdlet ausführen:

    Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
    
  • Folgen Sie der Windows Server-Leistungsoptimierung für SMB-Dateiserver , um das SMB-Server-Subsystem zu optimieren.

Langsame Übertragung bei Verwendung kleiner Dateien

Langsame Kopiergeschwindigkeiten und geringer Netzwerkdurchsatz werden erwartet, wenn eine große Anzahl kleiner Dateien über das Netzwerk mithilfe von Explorer und anderen Singlethread-Kopiertools übertragen wird. "Eine große Anzahl kleiner Dateien" wird als Hunderte, Tausende und sogar Millionen von Dateien definiert, die kleiner als 1 MB sind.

Problemdetails

Die Dateierstellung ist ein "teurer Vorgang" in Bezug auf die Leistung sowohl aus einer Netzwerkprotokoll-Perspektive (SMB) als auch aus Dateisystemperspektive. SMB muss mehrere Protokollvorgänge ausführen, um eine Datei zu erstellen, bevor daten übertragen werden können. Das Dateisystem selbst hat beim Erstellen von Dateien eine zusätzliche Leistungseinbuße.

Kleine Dateikopien treffen diese Strafe wiederholt. Die Datengröße pro Datei reicht nicht aus, damit das Netzwerk genügend Daten in Flight einlegen kann, um hohe Netzwerkgeschwindigkeiten aufrechtzuerhalten, wenn eine Einzelthreadkopie verwendet wird, da mehr Zeit für die Erstellung der Dateien aufgewendet wird als das Übertragen der Dateidaten.

Dieses Problem tritt auf, da die Datenübertragung angehalten werden muss, um die Dateierstellung durchzuführen, nachdem nur eine Handvoll Datennutzlasten übertragen wurden. Eine einzelne große Datei hat jedoch eine einzige Dateierstellungsstrafe und überträgt dann genügend Daten, um spitzen Netzwerkgeschwindigkeiten zu erreichen.

Technische Details

Netzwerklatenz, SMB-Befehle create und Antivirenprogramme tragen zu einer langsameren Übertragung kleiner Dateien bei. Hier sind weitere Details zu diesem Problem:

  • SMB gibt create Befehle aus, um die Erstellung der Datei anzufordern.

    • Jeder create-Befehl führt zu Aktivitäten im Dateisystem.
    • Nachdem die Daten geschrieben wurden, wird die Datei geschlossen.
  • Der Prozess leidet unter Netzwerk-, Protokoll- (SMB) und Dateisystemlatenz.

    • Diese Latenz tritt auf, da die Dateisystemanforderung zuerst in SMB-Befehle übersetzt, über das Netzwerk übertragen und wieder in einen Dateisystembefehl umgewandelt wird und nur dann die eigentliche Dateisystemarbeit ausgeführt wird.
    • Der Prozess wird nach Abschluss des Speichervorgangs rückgängig gemacht, und nur dann empfängt der SMB-Client eine Antwort und kann mit dem nächsten Vorgang fortfahren.
  • Darüber hinaus überprüft Endpoint Protection (Antivirus) häufig Netzwerkpakete und Dateisystemvorgänge.

    • Dies fügt dem Prozess in der Regel eine geringe Latenz hinzu.
    • In kleinen Dateiszenarien werden die Antivirenaktionen für jede übertragene Datei wiederholt.
  • Daher können die Netzwerkdurchsatzgeschwindigkeiten bei Verwendung eines Singlethread-Dateikopietools kleiner als 1 MB/s sein.

Beschleunigen kleiner Dateikopien

  • Wird robocopy mit dem /MT Parameter und der Umleitungsausgabe mithilfe von /log.

    • Robocopy ist in Windows integriert, und der /MT Parameter ermöglicht Multithread-Dateikopien.
    • Multithreadkopien helfen, indem viele Datenübertragungen parallel ausgeführt werden.
      • Während eine oder zwei Dateien erstellt werden, können die Daten mehrerer Dateien übertragen werden.
      • Dies erhöht die Menge an In-Flight-Netzwerkdaten und minimiert Pausen im Netzwerkdatenstrom.
    • Das Schreiben in die Konsole ist ein weiterer zeitaufwändiger Vorgang, sodass das Umleiten der Ausgabe an eine Protokolldatei den Übertragungsauftrag beschleunigt.
    • Kopiert standardmäßig /MT acht Dateien gleichzeitig. Es unterstützt bis zu 128 Kopien gleichzeitig.
    • Zu viele Threads können die Leistung beeinträchtigen. Zwei Threads pro CPU-Kern sind im Allgemeinen sicher, aber Tests werden dringend empfohlen, die optimale Leistungsnummer zu finden.
    • Weitere Informationen zu Nutzungsdetails finden Sie unter robocopy.
  • Wird AzCopy beim Verschieben von Daten in/aus Azure verwendet.

  • Verwenden Sie die Dateikomprimierung.

    • Komprimieren Sie die kleinen Dateien in eine große Archivdatei (.zip, .7z, , .rar.tarund .gz).
    • Kopieren Sie die Archivdatei.
    • Extrahieren Sie die Dateien im Zielsystem. Extrahieren Sie die Dateien nicht remote.
    • Dies kann je nach Komprimierungs- und Dekomprimierungsgeschwindigkeiten der beiden Systeme schneller sein oder nicht.
    • Verwenden Sie schnelle Komprimierung oder keine Komprimierungsarchivierung, um die Komprimierungs- und Dekomprimierungszeiten zu reduzieren.
  • Verwenden Sie ein vertrauenswürdiges Tool zum Kopieren von Dateien von Drittanbietern (nicht von Microsoft), das das Kopieren von Multithreads unterstützt.

Langsames Öffnen von Office-Dokumenten

Das Öffnen von Office-Dokumenten kann lange dauern, und meist tritt dieses Problem bei einer WAN-Verbindung auf. Das langsame Öffnen von Dokumenten ist in der Regel auf die Art und Weise zurückzuführen, wie Office-Apps (insbesondere Microsoft Excel) auf Daten zugreifen und diese lesen.

Stellen Sie sicher, dass die Office- und SMB-Binärdateien auf dem neuesten Stand sind, und führen Sie anschließend einen Test durch, bei dem Sie das Leasen auf dem SMB-Server deaktivieren. Führen Sie die folgenden Schritte aus, um sicherzustellen, dass beide Bedingungen erfüllt sind:

Hinweis

Diese Methode sollte mit Vorsicht verwendet werden. Leasing ist ein integraler Bestandteil des SMB-Protokolls und wird in der Regel auf einem SMBv2- oder SMBv3-Server verfügbar sein. Mehrere Features hängen von der Verfügbarkeit des Leasings ab, z. B. Lesezwischenspeicherung, Schreibzwischenspeicherung und Zwischenspeicherung. Während das Deaktivieren des Leasings einige langsame Leistungsprobleme lösen kann, kann es sich negativ auf andere Anwendungen auswirken, die auf die Vorteile des Leasings angewiesen sind.

  1. Führen Sie das folgende PowerShell-Cmdlet in Windows 8 und Windows Server 2012 oder höheren Versionen von Windows aus:

    Set-SmbServerConfiguration -EnableLeasing $false
    

    Führen Sie alternativ das folgende Cmdlet aus, um das Leasing pro Aktie in Windows Server 2019 und höheren Versionen zu deaktivieren:

    Wichtig

    Es wird empfohlen, zuerst tests mit LeasingMode "Set" durchzuführen Shared . Dies ermöglicht einige Leasing- und Deaktivierung der Teile, die in der Regel zu Langsamkeit führen. Nur als endgültige Option verwenden None .

    Set-SmbShare -Name <ShareName> -LeasingMode [Shared|None]
    
  2. Dies funktioniert sofort bei einer neuen SMB-Clientverbindung. Es ist nicht erforderlich, den SMB-Server oder Clientcomputer neu zu starten.

Wenn Sie dieses Problem vermeiden möchten, können Sie die Datei auch auf einen lokalen Dateiserver replizieren. Weitere Informationen finden Sie unter Das Speichern von Office-Dokumenten auf einem Netzwerkserver ist bei Verwendung von EFS langsam.