Ottimizzazione delle prestazioni per file server

È consigliabile selezionare l'hardware appropriato per soddisfare il carico previsto dei file server, considerando il carico medio, il picco di carico, la capacità, i piani di crescita e i tempi di risposta. I colli di bottiglia dell'hardware limitano l'efficacia dell'ottimizzazione a livello software.

Parametri di ottimizzazione generali per i client

Le impostazioni REG_DWORD seguenti del Registro di sistema possono incidere sulle prestazioni dei computer client che interagiscono con i file server SMB:

  • ConnectionCountPerNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerNetworkInterface
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

    È consigliabile usare il valore predefinito, ovvero 1. L'intervallo valido è compreso tra 1 e 16. Il numero massimo di connessioni, per interfaccia, da stabilire con un server per le interfacce non RSS.

  • ConnectionCountPerRssNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerRssNetworkInterface
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

    È consigliabile usare il valore predefinito, ovvero 4. L'intervallo valido è compreso tra 1 e 16. Il numero massimo di connessioni, per interfaccia, da stabilire con un server per le interfacce RSS.

  • ConnectionCountPerRdmaNetworkInterface

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\ConnectionCountPerRdmaNetworkInterface
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

    È consigliabile usare il valore predefinito, ovvero 2. L'intervallo valido è compreso tra 1 e 16. Il numero massimo di connessioni, per interfaccia, da stabilire con un server per le interfacce RDMA.

  • MaximumConnectionCountPerServer

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\MaximumConnectionCountPerServer
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

    Il valore predefinito è 32 e l'intervallo valido è compreso tra 1 e 64. Il numero massimo di connessioni da stabilire con un server singolo che esegue Windows Server 2012 per tutte le interfacce.

  • DormantDirectoryTimeout

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DormantDirectoryTimeout
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2 e Windows Server 2012

    Il valore predefinito è 600 secondi. L'intervallo di tempo massimo durante il quale gli handle di directory del server vengono mantenuti aperti con lease di directory.

  • FileInfoCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileInfoCacheLifetime
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 10 secondi. Il periodo che deve trascorrere prima del timeout della cache con le informazioni dei file.

  • DirectoryCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheLifetime
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 10 secondi. Si tratta del timeout della cache delle directory.

    Nota

    Questo parametro controlla la memorizzazione nella cache dei metadati di directory in assenza di lease di directory.

    Nota

    Un problema noto in Windows 10, versione 1803, influisce sulla capacità di Windows 10 di memorizzare nella cache directory di grandi dimensioni. Dopo l'aggiornamento di un computer a Windows 10, versione 1803, si accede a una condivisione di rete che contiene migliaia di file e cartelle e si apre un documento presente in tale condivisione. Durante queste due operazioni si riscontrano ritardi significativi.

    Per risolvere il problema, installare Windows 10, versione 1809 o successiva.

    Come soluzione alternativa, impostare DirectoryCacheLifetime su 0.

    Il problema interessa le edizioni seguenti di Windows 10:

    • Windows 10 Enterprise, versione 1803
    • Windows 10 Pro for Workstations, versione 1803
    • Windows 10 Pro Education, versione 1803
    • Windows 10 Professional, versione 1803
    • Windows 10 Education, versione 1803
    • Windows 10 Home, versione 1803
  • DirectoryCacheEntrySizeMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheEntrySizeMax
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 64 KB. Si tratta della dimensione massima delle voci della cache delle directory.

  • FileNotFoundCacheLifetime

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileNotFoundCacheLifetime
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 5 secondi. Il periodo che deve trascorrere prima del timeout della cache dei file non trovati.

  • CacheFileTimeout

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\CacheFileTimeout
    

    Si applica a Windows 8.1, Windows 8, Windows Server 2012, Windows Server 2012 R2 e Windows 7

    Il valore predefinito è 10 secondi. Questa impostazione controlla l'intervallo di tempo (in secondi) durante il quale il redirector mantiene i dati memorizzati nella cache per un file dopo che l'ultimo handle al file viene chiuso da un'applicazione.

  • DisableBandwidthThrottling

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DisableBandwidthThrottling
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 0. Per impostazione predefinita, il redirector SMB limita la velocità effettiva nelle connessioni di rete ad alta latenza, in alcuni casi per evitare timeout relativi alla rete. Se si imposta su 1 questo valore del Registro di sistema, si disabilita tale limitazione, rendendo possibile una velocità effettiva di trasferimento file superiore su connessioni di rete ad alta latenza.

  • DisableLargeMtu

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DisableLargeMtu
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 0 solo per Windows 8. In Windows 8 il redirector SMB trasferisce i payload fino a 1 MB per ogni richiesta, migliorando la velocità di trasferimento dei file. Se si imposta su 1 questo valore del Registro di sistema, si limitano le dimensioni della richiesta a 64 KB. È consigliabile valutare l'impatto di questa impostazione prima di applicarla.

  • RequireSecuritySignature

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\RequireSecuritySignature
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 0 ed equivale a disabilitare la firma SMB. Se si modifica questo valore impostandolo su 1, si abilita la firma SMB per tutte le comunicazioni SMB, impedendole con i computer in cui la firma SMB è disabilitata. La firma SMB può far aumentare i costi relativi alla CPU e i round trip di rete, ma facilita il blocco degli attacchi man-in-the-middle. Se la firma SMB non è necessaria, assicurarsi che questo valore del Registro di sistema sia impostato su 0 in tutti i client e server.

    Per altre informazioni, vedere The Basics of SMB Signing (Introduzione alla firma SMB).

  • FileInfoCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileInfoCacheEntriesMax
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 64 e l'intervallo valido è compreso tra 1 e 65536. Questo valore viene usato per determinare la quantità di metadati dei file che può essere memorizzata nella cache dal client. Aumentando il valore, è possibile ridurre il traffico di rete e migliorare le prestazioni quando si accede a un numero elevato di file.

  • DirectoryCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DirectoryCacheEntriesMax
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 16 e l'intervallo valido è compreso tra 1 e 4096. Questo valore viene usato per determinare la quantità di informazioni delle directory che può essere memorizzata nella cache dal client. Aumentando il valore, è possibile ridurre il traffico di rete e migliorare le prestazioni quando si accede a directory di grandi dimensioni.

  • FileNotFoundCacheEntriesMax

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\FileNotFoundCacheEntriesMax
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 128 e l'intervallo valido è compreso tra 1 e 65536. Questo valore viene usato per determinare la quantità di informazioni relative ai nomi dei file che può essere memorizzata nella cache dal client. Aumentando il valore, è possibile ridurre il traffico di rete e migliorare le prestazioni quando si accede a un numero elevato di nomi di file.

  • MaxCmds

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\MaxCmds
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 15. Questo parametro limita il numero di richieste in sospeso in una sessione. Aumentando il valore, si usa più memoria, ma le prestazioni possono migliorare grazie all'abilitazione di una pipeline di richieste più profonda. Aumentando il valore insieme a MaxMpxCt, è anche possibile eliminare gli errori che si verificano a causa di un numero elevato di richieste di file a lungo termine in sospeso, ad esempio chiamate FindFirstChangeNotification. Questo parametro non incide sulle connessioni a server SMB 2.0.

  • DormantFileLimit

    HKLM\System\CurrentControlSet\Services\LanmanWorkstation\Parameters\DormantFileLimit
    

    Si applica a Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2022, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008

    Il valore predefinito è 1023. Questo parametro specifica il numero massimo di file che è consigliabile lasciare aperti in una risorsa condivisa dopo che l'applicazione ha chiuso il file.

Esempio di ottimizzazione di client

I parametri di ottimizzazione generali per i computer client consentono di ottimizzare un computer per l'accesso a condivisioni file remote, in particolare su alcune reti ad alta latenza quali succursali, comunicazioni tra data center, sedi centrali e reti a banda larga mobili. Le impostazioni non sono ottimali o appropriate per tutti i computer. È consigliabile valutare l'impatto delle singole impostazioni prima di applicarle.

Parametro Valore Valore predefinito
DisableBandwidthThrottling 1 0
FileInfoCacheEntriesMax 32768 64
DirectoryCacheEntriesMax 4096 16
FileNotFoundCacheEntriesMax 32768 128
MaxCmds 32768 15

A partire da Windows 8, è possibile configurare molte di queste impostazioni SMB usando i cmdlet Set-SmbClientConfiguration e Set-SmbServerConfiguration di Windows PowerShell. Le impostazioni solo del Registro di sistema possono essere configurate anche usando Windows PowerShell.

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters" RequireSecuritySignature -Value 0 -Force