Dela via


SMB-komprimering

Med SMB-komprimering kan en administratör, användare eller ett program begära komprimering av filer när de överförs via nätverket. Detta tar bort behovet av att först manuellt deflatera en fil med ett program, kopiera den och sedan blåsa upp den på måldatorn. Komprimerade filer förbrukar mindre nätverksbandbredd och tar mindre tid att överföra, på bekostnad av något ökad CPU-användning under överföringar. SMB-komprimering är mest effektivt i nätverk med mindre bandbredd, till exempel en klients 1 Gbit/s Ethernet eller Wi-Fi nätverk. en filöverföring över ett ej inmatat 100 Gbit/s Ethernet-nätverk mellan två servrar med flashlagring kan vara lika snabbt utan SMB-komprimering i praktiken, men skapar fortfarande mindre överbelastning för andra program.

SMB-komprimering i Windows har följande egenskaper:

  • Stöder komprimeringsalgoritmer XPRESS (LZ77), XPRESS Huffman (LZ77+Huffman), LZNT1 eller PATTERN_V1*. XPRESS används automatiskt
  • Stöder komprimeringsalgoritmen LZ4 på Windows Server 2025
  • Stöder SMB-signering och SMB-kryptering
  • Stöder SMB över QUIC
  • Stödjer SMB Multichannel
  • Stöder inte SMB Direct via RDMA

Note

Windows 11 och Windows Server 2025 stöder också komprimeringsalgoritmen LZ4 enligt definitionen i LZ4.org. Mer information om den här komprimeringsalgoritmen finns i Dokumentation om LZ4-komprimering.

En demonstration av SMB-komprimering finns i den här videon:

Requirements

Om du vill använda SMB-komprimering i en traditionell klientfilserverarbetsbelastning behöver du följande:

Konfigurera SMB-komprimering

Du kan konfigurera SMB-komprimering från både ett klient- och serverperspektiv. Klient och server refererar inte till en viss utgåva som Windows Server 2022 eller Windows 11, version 24H2, utan i stället arkitekturen för en filöverföring mellan två datorer. Både Windows Server 2022 och Windows 11 har stöd för att vara en klient eller server med SMB-komprimering.

Begära SMB-komprimering på filresurser

Du kan konfigurera resurser för att alltid begära komprimering när de är anslutna till av klienter. Du kan använda Windows Admin Center eller PowerShell.

Använda Administrationscenter för Windows

  1. Installera Windows Admin Center och anslut till en Windows Server 2022-filserver.
  2. Klicka på menyalternativet Filer och fildelning .
  3. Klicka på Fildelningar.
  4. Redigera en befintlig resurs eller skapa en ny resurs.
  5. Välj Komprimera data och klicka sedan på Lägg till eller redigera.

Skärmbild av Windows Admin Center i Windows Server 2022-filservern.

Med hjälp av PowerShell

  1. Öppna ett förhöjt PowerShell-kommandofönster som administratör.

  2. Skapa en ny delning med komprimering med New-SMBShare-parametern och -argumentet -CompressData $true. Till exempel:

    New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true
    
  3. Redigera en befintlig delning med komprimering med Set-SMBShare och -CompressData $true-parametern och dess argument. Till exempel:

    Set-SmbShare -Name "Sales" -CompressData $true
    

Begära SMB-komprimering på mappade enheter

Du kan begära att alla data som kopieras över en mappad enhet komprimeras. Detta kan göras som en del av ett inloggningsskript eller när det körs manuellt.

  1. Öppna en PowerShell-kommandotolk.

  2. Mappa en enhet med New-SMBMapping och använd parametern -CompressNetworkTraffic $true tillsammans med argumentet. Till exempel:

    New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.contoso.com\sales" -CompressNetworkTraffic $true
    

Begära SMB-komprimering med kopieringsverktyg

Du kan begära att SMB-komprimering görs för vissa filer med robocopy eller xcopy.

Note

Om du vill att Utforskaren, kopieringsverktyg från tredje part eller program ska använda komprimering, mappa enheter med komprimering, aktivera komprimering på resurser eller ange att SMB-klienter alltid ska komprimeras.

  1. Öppna en CMD-prompt eller PowerShell-kommandotolk.

  2. Kopiera med flaggan /COMPRESS. Till exempel:

    ROBOCOPY c:\hypervdisks \\hypervcluster21.corp.contoso.com\disks$ *.vhdx /COMPRESS
    

Kräv eller avvisa alltid komprimeringsbegäranden

Från och med Windows Server 2022 med uppdatering KB5016693 (OS Build 20348.946) och Windows 11 med uppdatering KB5016691 (OS Build 22000.918) kan du konfigurera en SMB-klient eller SMB-server för att alltid begära komprimering och alltid avvisa begäranden om komprimering. Du kan nu använda grupprincip eller PowerShell; I den första versionen av Windows 11 och Windows Server 2022 kunde du bara använda registerinställningar för att styra de flesta av dessa beteenden och du kunde inte konfigurera en SMB-server för att alltid begära komprimering trots dess resursinställningar. En SMB-klient och SMB-server refererar till SMB-tjänsterna, inte till en Windows-utgåva eller SKU. Alla dessa SMB-ändringar träder i kraft omedelbart utan omstart.

Försök alltid komprimering (SMB-klient)

  1. Kör konsolen Grupprinciphantering för din Active Directory-domän och skapa eller navigera till en grupprincip.
  2. Expandera principen Datorkonfiguration\Principer\Administrativa mallar\Nätverk\Lanman-arbetsstation.
  3. Aktivera princip Använd SMB-komprimering som standard.
  4. Stäng principredigeraren.

Komprimera aldrig (SMB-klient)

  1. Kör konsolen Grupprinciphantering för din Active Directory-domän och skapa eller navigera till en grupprincip.
  2. Expandera principen Datorkonfiguration\Principer\Administrativa mallar\Nätverk\Lanman-arbetsstation.
  3. Aktivera princip Inaktivera SMB-komprimering.
  4. Stäng principredigeraren.

Försök alltid komprimering (SMB-server)

  1. Kör konsolen Grupprinciphantering för din Active Directory-domän och skapa eller navigera till en grupprincip.
  2. Expandera principen Datorkonfiguration\Principer\Administrativa mallar\Nätverk\Lanman Server.
  3. Aktivera policyn Begär trafikkomprimering för alla delningar.
  4. Stäng principredigeraren.

Komprimera aldrig (SMB-server)

  1. Kör konsolen Grupprinciphantering för din Active Directory-domän och skapa eller navigera till en grupprincip.
  2. Expandera principen Datorkonfiguration\Principer\Administrativa mallar\Nätverk\Lanman Server.
  3. Aktivera princip Inaktivera SMB-komprimering.
  4. Stäng principredigeraren.

Förstå och kontrollera komprimeringsbeteenden

Från och med Windows Server 2022 med uppdatering KB5016693 (OS Build 20348.946) och Windows 11 med uppdatering KB5016691 (OS Build 22000.918) försöker SMB som standard alltid komprimera en fil när en klient eller server begär den, utan att använda komprimeringssampling.

Note

I den ursprungliga versionen av Windows Server 2022 och Windows 11 använde SMB-komprimering som standard en algoritm där den försökte komprimera de första 524 288 000 byteen (500 MiB) av en fil under överföringen och spåra minst 104 857 600 byte (100 MiB) komprimerade inom det intervallet på 500 MiB. Om färre än 100 MiB var komprimerbara slutade SMB-komprimering att försöka komprimera resten av filen. Om minst 100 MiB komprimerades försökte SMB-komprimering komprimera resten av filen. Med den här beteendeändringen är samplingen nu inaktiverad som standard och SMB försöker alltid komprimera hela filen när en klient eller server begär den.

Testa SMB-komprimering

Ett enkelt sätt att testa komprimeringskonfigurationen är att använda VHDX-filer. Du kan skapa och montera en VHDX, lägga till några filer i den och sedan demontera VHDX och kopiera den som en fil. Du kan också kopiera en befintlig VHDX-fil för den demonterade virtuella datorn, eftersom en stor del av filinnehållet kan komprimeras. Ett exempel på hur du skapar en VHDX-testfil:

  1. Starta Diskmgmt.msc.

  2. Välj Lokal disk (C:) genom att klicka på den.

  3. Klicka på Åtgärd och sedan på Skapa virtuell hårddisk.

  4. I Diskmgmt högerklickar du på din VHDX som nu visas som "Inte initierad" och klickar på Initiera disk och klickar på OK. Högerklicka på avsnittet Diskar Ej allokerade och klicka på Ny enkel volym, sedan Nästa för alla menymeddelanden och klicka sedan på Slutför.

  5. Ange en filsökväg, ange storleken till "25 GB", välj VHDX och Fast storlek och klicka sedan på OK.

    Skärmbild av att skapa och ansluta en virtuell hårddisk för Windows Hyper-V.

  6. Högerklicka på disken, klicka på Koppla från virtuell hårddisk, och klicka sedan på OK.

  7. Dubbelklicka på VHDX-filen i Utforskaren för att montera den. Kopiera några MB okomprimerbara filer, till exempel JPG-format, högerklicka sedan på den monterade disken och klicka på Mata ut.

Nu har du en stor testfil med komprimerat innehåll.

Att testa SMB-komprimering mellan ett par virtuella datorer som körs på samma Hyper-V värd kanske inte visar tidsbesparingar eftersom den virtuella växeln är 10 Gbit/s och inte har någon överbelastning, plus att moderna hypervisor-program ofta använder flashlagring. Testa komprimering över de verkliga nätverk som du planerar att använda. Du kan också minska nätverksbandbredden på Hyper-V virtuella datorer i testsyfte med Set-VMNetworkAdapter med -MaximumBandwidth inställt på 1Gb, till exempel.

Om du vill se hur bra komprimering fungerar kan du robocopy samma fil till en server två gånger, en gång med /compress flaggan och igen utan komprimering, och ta bort serverfilen mellan varje test. Om filen komprimeras bör du se mindre nätverksanvändning i Aktivitetshanteraren och en kortare kopieringstid. Du kan också se SMB-serverns prestandaövervakarobjekt "SMB Server-resurser" för räknarna "Komprimerade begäranden per sekund" och "Komprimerade svar/sek".

RDMA och SMB Direct

SMB-komprimering stöder inte SMB Direct och RDMA. Det innebär att komprimering inte görs med SMB Direct och RDMA även om klienten begär komprimering och servern stöder den. Stöd för SMB-komprimering med SMB Direct och RDMA kommer efter de offentliga förhandsversionerna av Windows Server 2022 och Windows 11.