Langsame Dateiübertragungsgeschwindigkeit bei SMB

In diesem Artikel werden empfohlene Verfahren zur Problembehandlung bei langsamen Dateiübertragungsgeschwindigkeiten bei SMB beschrieben.

Die Dateiübertragung ist langsam

Wenn Sie langsame Übertragungen von Dateien feststellen, sollten Sie die folgenden Schritte in Betracht ziehen:

  • Versuchen Sie den Dateikopierbefehl für nicht gepufferte E/A (xcopy /J oder robocopy /J).

  • Testen Sie die Speichergeschwindigkeit. Dieser Test ist aufschlussreich, weil die Geschwindigkeit beim Kopieren von Dateien durch die Speichergeschwindigkeit begrenzt wird.

  • Dateikopien beginnen manchmal schnell und verlangsamen sich dann. Beachten Sie die folgenden Hinweise, um die jeweilige Situation abzuklären:

    • Die Dateiübertragung verlangsamt sich in der Regel, wenn die erste Kopie (entweder im Arbeitsspeicher oder im Speichercache des RAID-Controllers) zwischengespeichert oder gepuffert wird und der Cache nicht mehr verfügbar ist. Dadurch werden Daten direkt auf den Datenträger geschrieben (Write-Through). Dieser Vorgang dauert lange.

    • Verwenden Sie Leistungsindikatoren für Speicher, um festzustellen, ob die Speicherleistung mit der Zeit abnimmt. Weitere Informationen finden Sie unter Leistungsoptimierung für SMB-Dateiserver.

  • Verwenden Sie RAMMap (SysInternals), um festzustellen, ob die Auslastung der zugeordneten Datei im Arbeitsspeicher nicht mehr zunimmt, weil kein freier Arbeitsspeicher mehr vorhanden ist.

  • Suchen Sie in der Ablaufverfolgung nach Paketverlusten. Paketverluste können zu einer Einschränkung der maximalen Bandbreite durch den TCP-Congestion-Control-Anbieter führen.

  • Stellen Sie für SMB ab Version 3 sicher, dass SMB Multichannel aktiviert ist und funktioniert.

  • Aktivieren Sie auf dem SMB-Client große MTUs in SMB, und deaktivieren Sie die Bandbreiteneinschränkung. Führen Sie zu diesem Zweck den folgenden Befehl aus:

    Set-SmbClientConfiguration -EnableBandwidthThrottling 0 -EnableLargeMtu 1
    

Kleine Dateien werden nur langsam übertragen

Häufig dauert die Übertragung kleiner Dateien mittels SMB lange,wenn sehr viele Dateien übertragen werden. Dies entspricht dem erwarteten Verhalten.

Während der Dateiübertragung verursacht die Dateierstellung sowohl hohen Protokollaufwand als auch hohen Dateisystemaufwand. Bei der Übertragung großer Dateien ist dieser Aufwand nur einmal zu leisten. Wenn eine Vielzahl kleiner Dateien übertragen wird, ist der Aufwand wiederholt zu leisten. Dadurch werden die Dateien nur langsam übertragen.

Im Folgenden werden technische Details zu diesem Problem beschrieben:

  • Durch SMB wird ein CREATE-Befehl zum Erstellen der Datei aufgerufen. Mit einem Code wird zunächst überprüft, ob die Datei vorhanden ist. Anschließend wird die Datei erstellt. Oder die eigentliche Datei wird mit einer Variante des CREATE-Befehls erstellt.

  • Durch jeden CREATE-Befehl werden Aktivitäten im Dateisystem verursacht.

  • Nachdem die Daten geschrieben wurden, wird die Datei geschlossen.

  • Die ganze Zeit leidet der Prozess unter Netzwerklatenz und SMB-Serverlatenz. Dies liegt daran, dass die SMB-Anforderung zum Ausführen des Vorgangs zuerst in einen Dateisystembefehl und dann in die eigentliche Dateisystemlatenz übersetzt wird.

  • Wenn ein Antivirenprogramm ausgeführt wird, verlangsamt sich die Übertragung noch mehr. Dies liegt daran, dass die Daten in der Regel einmal vom Paketsniffer und ein zweites Mal beim Schreiben auf den Datenträger überprüft werden. In einigen Szenarios werden diese Aktionen tausende Male wiederholt. Die Geschwindigkeit kann dabei auf unter 1 MB/s sinken.

Office-Dokumente werden nur langsam geöffnet

Dieses Problem tritt in der Regel bei WAN-Verbindungen auf. Es tritt häufig auf und wird meist durch die Weise verursacht, wie Office-Anwendungen (insbesondere Microsoft Excel) auf Daten zugreift und diese einliest.

Zum Beheben des Problems sollten Sie sicherstellen, dass die Office- und SMB-Binärdateien auf dem neuesten Stand sind. Anschließend sollten Sie den Vorgang testen und dabei das Leasen auf dem SMB-Server deaktivieren. Gehen Sie hierzu folgendermaßen vor:

  1. Führen Sie in Windows 8 und Windows Server 2012 oder höher den folgenden PowerShell-Befehl aus:

    Set-SmbServerConfiguration -EnableLeasing $false  
    

    Oder führen Sie den folgenden Befehl in einem Eingabeaufforderungsfenster mit erhöhten Rechten aus:

    REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters /v DisableLeasing /t REG\_DWORD /d 1 /f  
    

    Hinweis

    Nachdem Sie diesen Registrierungsschlüssel festgelegt haben, werden SMB2-Leases nicht mehr zugelassen, „Oplocks“ sind jedoch weiterhin verfügbar. Diese Einstellung wird in erster Linie für die Problembehandlung verwendet.

  2. Starten Sie den Dateiserver neu, oder starten Sie den Serverdienst neu. Führen Sie zum Starten des Diensts die folgenden Befehle aus:

    NET STOP SERVER 
    NET START SERVER
    

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